Regex 使用正则表达式在两个子字符串之间捕获
这可能真的很容易 但是我想写一个正则表达式,它从单词“differention”开始,然后在单词“differention”再次开始之前直接结束(参见下面的数据) 我当前的正则表达式是this(DIST[^DIST]*),但当然,只要引擎找到“D”、“I”、“S”或“T”,它就会找到匹配项。所以我只能在找到“DIST”时停止搜索?谢谢你的帮助 数据如下所示: 区别四十二 第一章:关于上帝的全能,他为什么要这样说 “无所不能”,因为我们可以做很多事情,而他自己却做不到 做第二章:神以什么样的方式说能做所有的事 东西。第三章:认为上帝的全能 根据两个法案 区别四十三 第一章:对那些说上帝可以做到的人的谩骂 什么都没有,只有他的意志和行动 区别四十四 第一章:上帝是否能创造出比他所创造的更好的东西 它,和/或以另一种和/或更好的方式,比他有。第二章: 上帝是否总能做他能做的一切 区别XLV 为此,您需要一个:Regex 使用正则表达式在两个子字符串之间捕获,regex,Regex,这可能真的很容易 但是我想写一个正则表达式,它从单词“differention”开始,然后在单词“differention”再次开始之前直接结束(参见下面的数据) 我当前的正则表达式是this(DIST[^DIST]*),但当然,只要引擎找到“D”、“I”、“S”或“T”,它就会找到匹配项。所以我只能在找到“DIST”时停止搜索?谢谢你的帮助 数据如下所示: 区别四十二 第一章:关于上帝的全能,他为什么要这样说 “无所不能”,因为我们可以做很多事情,而他自己却做不到 做第二章:神以什么样的方式说
DIST(?:(?!DIST).)*
从DIST
匹配到下一个DIST
之前的位置(如果没有,则匹配到字符串末尾)。确保您设置了“点匹配所有”选项(详细信息因您的正则表达式引擎而异)
看到了
说明:
DIST#匹配“DIST”。
(?:#组建一个与。。。
(?!DIST)#(除非我们在单词“DIST”的开头)
.#任何角色。
)*#根据需要重复。
或
您可能会发现lookarounds()很有用。这真的需要到处看看吗?难道没有把“DIST”看成是“D、I、S、t”而不是“D、I、S、t”
[^(区别)]
意思是“除了(
,D
,I
,S
,t
,N
,C
,O
或)以外的任何字符。”。此外,这个正则表达式只会找到其他匹配项,它永远不会找到最终匹配项;他们完全匹配。
/DISTINCTION(.*?)DISTINCTION/
/DISTINCTION([^(DISTINCTION)]*?)DISTINCTION/