Regex查找可能包含单个空格并后跟多个空格的字符串



给定

多行文本:

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组:三位
  • $—字符串结束

最新更新