簡體   English   中英

帶有前綴和可選后綴的正則表達式

[英]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年底$ ),使捕獲的非貪婪

在 regex101 上看到它

嘗試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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM