我正在嘗試編寫匹配字符串後跟可選模式的正則表達式。匹配文本後跟可選模式
這裏就是我想匹配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