Regex 正则表达式匹配三个字符串的序列以及中间的文本
我试图得到一个正则表达式来匹配包含第三个字符串的两个字符串之间的内容。我很难让惰性量词配合,因为输入中有这些字符串的多个实例,并且正则表达式匹配一些不有用的内容,例如:Regex 正则表达式匹配三个字符串的序列以及中间的文本,regex,Regex,我试图得到一个正则表达式来匹配包含第三个字符串的两个字符串之间的内容。我很难让惰性量词配合,因为输入中有这些字符串的多个实例,并且正则表达式匹配一些不有用的内容,例如: Start…End…Start…End…Start…Middle…End 我实际上在寻找什么(每场比赛只有一个开始和结束的实例): 开始…中间…结束或开始…中间…结束 我很确定我需要使用lookahead/lookback,但尽管我在概念上理解它们,但将它们付诸实践确实很困难。这就是我所处的位置: //gm利用: 见 详细信息
Start…End…Start…End…Start…Middle…End
我实际上在寻找什么(每场比赛只有一个开始和结束的实例):
开始…中间…结束
或开始…中间…结束
我很确定我需要使用lookahead/lookback,但尽管我在概念上理解它们,但将它们付诸实践确实很困难。这就是我所处的位置:
//gm
利用:
见
详细信息
-文本字符串Start
-任何字符,0+重复,尽可能少,这不是(?:(?!Start | End)[\s\s])*?
或开始
序列的起点结束
-第1组:(中间|中间)
或中间
中间
-任何0+字符,尽可能少[\s\s]*?
-文本字符串End
开始[\s\s]*?(中间|中心)?[\s\s]*?结束
-我将(中间|中心)?
设置为可选。但我会使用\b开始\b.*(中间|中间).*\bEnd\b
,然后打开s
修饰符(点匹配换行符)。还要注意的是,它使用了\b
,这样您就不会意外地捕捉到像Endow
这样的内容。您添加了四个与您的问题无关的标记(、和)。我们在这个网站上认真对待标签,我们要求你只标记你的问题是关于什么的。我已经移除了。很抱歉,不会再发生了@与中间的字符串相匹配的CTWORD是强制性的,所以不幸的是它并没有切断它。@ Cak4我道歉,我误解了你的问题。维克托想好了,非常感谢!我找了好一阵子,但看起来我没能正确地表达我的问题。这个解释对我来说更清楚一点:
Start(?:(?!Start|End)[\s\S])*?(Middle|Center)[\s\S]*?End
^^^^^^^^^^^^^^^^^^^^^^^^^