给定:
多行文本:
SECTION 1 TEXT 201
THIS NEEDS TO BE CAPTURED #1 500
SECTION 2 TEXT 202
THIS NEEDS TO BE CAPTURED #2 502
NoSpaceShouldBeCaptured 123
THIS SHOULD BE IGNORED 000
必需:
从行首捕获所有字符串,这些字符串可能包含空格,后面跟着多个空格,最后跟着三位数字。不要捕捉任何以单词"开头的内容;剖面图";
所需结果:
"THIS NEEDS TO BE CAPTURED #1", "500"
"THIS NEEDS TO BE CAPTURED #2", "502"
"NoSpaceShouldBeCaptured", 123
我的尝试:
^(.+?)(?=s{2,})s{2,}(d{3})$
-这工作良好,但包括";第2节文本";,这应该被忽略。
CCD_ 2-这仍然捕获";第2节文本";,这应该被忽略。
如何忽略以单词SECTION开头的字符串?
编辑
附加要求:
不要捕获";这应该被忽略";因为";这应该"后面跟有多个空白,但后面不是三个数字而是";被忽略";
您可以使用
^(?!SECTION)((?:(?!s{2}).)+?)s{2,}(d{3})$
请参阅regex演示。
详细信息:
^
-字符串的开头(?!SECTION)
-当前位置不能有SECTION
子字符串((?:(?!s{2}).)+?)
-组1:除换行字符之外的任何一个字符,一个或多个出现但尽可能少,不启动双空白字符序列s{2,}
-两个或多个空白(d{3})
-第2组:三位$
—字符串结束