Regex 收集重复的2组模式
我正在寻找一个正则表达式,将从以下返回 赫胥黎的定律是有趣的。还有一些有趣的事情。 达拉斯的法律他的事情很无聊。 一些东西的无效法则 作为两行文字,其中已确定两组:Regex 收集重复的2组模式,regex,pcre,Regex,Pcre,我正在寻找一个正则表达式,将从以下返回 赫胥黎的定律是有趣的。还有一些有趣的事情。 达拉斯的法律他的事情很无聊。 一些东西的无效法则 作为两行文字,其中已确定两组: 第一组以“法律”开头,以第一个大写字母结尾 第二组,开始于之后,结束于下一组“法律” 遇到模式 我的目标是通过使用以下捕获组将标题与核心文本分离,从而对其进行重新表述: The law of Huxley Something interesting. Some other interesting thing. The law
The law of Huxley
Something interesting. Some other interesting thing.
The law of Dallas
This thing is boring.
The law of void
Some stuff.
我试过了
((The law [\w\s]+)([A-Z].+))+
无效您可以使用
(The law\s+\w+\s\P{Lu}*)(\p{Lu}.*?)(?=The law|$)
看
详情:
-第1组:(law\s+\w+\s\P{Lu}*)
文本,然后是一个或多个空格、一个或多个单词字符、一个空格,然后是除大写字母以外的任何零个或多个字符该law
-第2组:大写字母,然后是除换行符以外的任何零个或多个字符,尽可能少,直到后续子模式首次出现为止(\p{Lu}.*)
-一种正向前瞻,需要将(?=law |$)
或字符串结尾紧靠当前位置的右侧law
法则
到下一个单词,然后直到下一个大写字母开始的下一个捕获,该捕获一直到下一个法则
或字符串结尾(law\s+\w+\s\P{Lu}*)(\P{Lu}.*?(=law}$)
()还是在第一个大写单词之后?你做得很好@WiktorStribiżew;我实际上是在寻找使用捕获组来分离一些混合了核心文本的标题。我错过了它发挥作用的积极前瞻部分。谢谢你抽出时间。请毫不犹豫地发布一个回复,这样我就可以把它标记为一个好的答案