我正在尝试编写匹配字符串后跟可选模式的正则表达式。匹配文本后跟可选模式
这里就是我想匹配match/string
/any/path/match/string
/any/path/match/string/pattern
/any/path/match/string/pattern/something/else
凡/any/path
和/pattern
是静态的文字和match/string
可以是任何文字的三个输入字符串的例子。
我已经试过这
print $1 if m,/any/path/(.+)(?=/pattern/)?,
,但它在整个输入字符串,因为.+
是贪婪匹配。
语法像'(?= ...)'是一个空操作。那么......“*之后是一个可选模式*”,没有什么意义。你想做什么?请给出具体的例子。 – 2014-08-28 23:14:06
基本上我试图匹配“/任何/路径”和“/ pattern”之间的文本,其中“/ pattern”可能存在或不存在于输入字符串中。 – quicoju 2014-08-28 23:17:27
问题是,因为'match/string'可能是*“任何文本”*,所以它可能是'/ match/string/pattern/something/else'。如果你正确地定义你想要做的事情,那么代码将更加明显 – Borodin 2014-08-29 01:42:42