[英]Regular expression strings with consecutive variables
我对regex(正则表达式)还很陌生,需要一些帮助来制定字符串。 我大部分时候都理解它,但是当我需要匹配的文本包含变量后跟一个可选短语时,我感到很困惑。
假设文本的格式设置为“转向$ 1 [灯]”,其中“ $ 1”是我想要的变量,而“ the”可以包含或保留。 我已经尝试过以下命令“ turn(。+)(?:the)?\\ s * lights”,它适用于“打开灯”:
>>> re.match("turn (.+) (?:the)?\s*lights", "turn on lights").groups()
("on",)
但是,当我包含“ the”并尝试匹配“ on the lights”时,我将“ on the”作为变量。
>>> re.match("turn (.+) (?:the)?\s*lights", "turn on the lights").groups()
("on the",)
使用正则表达式库可以做到这一点吗? 如果问题不清楚,我深表歉意,谢谢!
如果我正确理解了该问题,则您正在尝试编写一个正则表达式,该匹配项将匹配包括但不限于以下内容的短语:
可以这样写一个正则表达式:
turn (.+?) (the )?lights
细分如下:
turn
:直截了当。 (.+?)
:捕获任何一个或多个字符,但?
表示不要贪婪。 你可以在这里阅读贪婪 (the )?
是用括号括起来的?
适用于整个字,使得整体the
可选。 这也会创建一个捕获组,但是您可以放心地忽略这一事实。 lights
:简单明了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.