如何进行非贪婪的多重查找匹配 来源: 发动机:PCRE RegEx1:(?
把贪婪的东西放在它前面如何进行非贪婪的多重查找匹配 来源: 发动机:PCRE RegEx1:(?,regex,lookbehind,non-greedy,Regex,Lookbehind,Non Greedy,把贪婪的东西放在它前面 Source: <prefix><content1><suffix1><prefix><content2><suffix2> Engine: PCRE RegEx1: (?<=<prefix>)(.*)(?=<suffix1>) RegEx2: (?<=<prefix>)(.*)(?=<suffix2>) Resu
Source: <prefix><content1><suffix1><prefix><content2><suffix2>
Engine: PCRE
RegEx1: (?<=<prefix>)(.*)(?=<suffix1>)
RegEx2: (?<=<prefix>)(.*)(?=<suffix2>)
Result1: <content1>
Result2: <content1><suffix1><prefix><content2>
把贪婪的东西放在它前面
Source: <prefix><content1><suffix1><prefix><content2><suffix2>
Engine: PCRE
RegEx1: (?<=<prefix>)(.*)(?=<suffix1>)
RegEx2: (?<=<prefix>)(.*)(?=<suffix2>)
Result1: <content1>
Result2: <content1><suffix1><prefix><content2>
我建议您使用:
(?<=<prefix>)(.*?)(?=<suffix2>)
(?我建议您使用:
(?<=<prefix>)(.*?)(?=<suffix2>)
(?我也有同样的问题。但在我的情况下是这样的
(?<=<prefix>)(((?!<prefix>).)*)(?=<suffix2>)
(?我也有同样的问题。但在我的情况下是这样的
(?<=<prefix>)(((?!<prefix>).)*)(?=<suffix2>)
(?第一个正则表达式看起来没问题(当然你需要使用\1而不是整个匹配),第二个不起作用。它仍然会匹配太多(因为第一个可能的匹配获胜,而长匹配仍然是可能的)。是的,我不确定第二个,因此“可能”。谢谢Dav。我会尝试一下,但我希望正则表达式有一些更优雅的东西,例如类似于子模式数字的某种相对标识符。第一个正则表达式看起来不错(当然需要使用\1,而不是整个匹配),第二个不起作用。它仍然会匹配太多(因为第一场可能的比赛获胜,而长时间的比赛仍然是可能的)。是的,我不确定第二场,因此“可能”。谢谢Dav。我会尝试一下,但我希望RegEx有一些更优雅的东西,比如类似于子模式数的相对标识符。