[英]Regex with prefix and optional suffix
這可能是關於 SO 上正則表達式可選后綴的 100+1 問題,但我沒有找到任何可以幫助我:(
我需要從通用模式中提取一部分字符串:
prefix/s/o/m/e/t/h/i/n/g/suffix
使用正則表達式。 前綴是常量,后綴可能根本不會出現,所以prefix/(.+)/suffix
不符合我的要求。 模式prefix/(.+)(?:/suffix)?
返回s/o/m/e/t/h/i/n/g/suffix
。 部分(?:/suffix)?
必須以某種方式更貪婪。
我想從這些輸入字符串中獲取s/o/m/e/t/h/i/n/g
:
prefix/s/o/m/e/t/h/i/n/g/suffix
prefix/s/o/m/e/t/h/i/n/g/
prefix/s/o/m/e/t/h/i/n/g
提前致謝!
嘗試
prefix\/(.+?)\/?(?:suffix|$)
正則表達式需要知道什么時候比賽已經完成,因此無論是相匹配suffix
或線(到2005年底$
),使捕獲的非貪婪。
嘗試prefix(.*?)(?:/?(?:suffix|$))
如果在suffix
prefix
之前允許字符。
這要求匹配盡可能短(不情願的量詞),並且前面有 3 件事之一:在輸入結尾之前的單個斜杠、 /suffix
或輸入結尾。 這將匹配您提供的測試用例中的/s/o/m/e/t/h/i/n/g
但會匹配更多的輸入,例如prefix/s/o/m/e/t/h/i/n/g/suff
(IMO 沒問題,因為您不知道/suff
是匹配的一部分還是后綴中的拼寫錯誤)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.