这可能很容易。
但我想写一个以“DISTINCTION”开头的正则表达式,然后在“Distinction”再次开始之前直接结束(参见下面的数据)。
我当前的正则表达式是这个(DIST [^ DIST] *)但是当引擎找到“D”,“I”,“S”或“T”时,它当然会找到匹配。所以我只有在找到“DIST”时才能停止搜索?谢谢你的帮助。
数据如下所示:
DISTINCTION XLII
第一章:关于上帝的无所不能,他说的原因是什么 是“无所不能的”,因为我们可以做许多事情,而他自己却做不到 做。第二章:上帝以何种方式表达能够做到的一切 的东西。第三章:考虑上帝的无所不能 根据两个行为。
DISTINCTION XLIII
第一章:对那些说上帝能做的人的一种侮辱 没什么,但是他会做什么和做什么。
DISTINCTION XLIV
第一章:上帝是否能比他所做的更好 它,和/或以另一种和/或更好的方式,比他有。第二章: 上帝是否总能做他能做的一切。
DISTINCTION XLV
答案 0 :(得分:1)
您需要negative lookahead assertion:
DIST(?:(?!DIST).)*
从DIST
到下一个DIST
之前的位置匹配(如果没有,则匹配字符串的结尾)。确保设置“dot-matches-all”选项(详细信息因您的正则表达式引擎而异)。
<强>解释强>
DIST # Match "DIST".
(?: # Start a group that matches...
(?!DIST) # (unless we're at the start of the word "DIST")
. # any character.
)* # Repeat as needed.
答案 1 :(得分:-2)
/DISTINCTION(.*?)DISTINCTION/
或
/DISTINCTION([^(DISTINCTION)]*?)DISTINCTION/