双下划线之前的数字之后的正则表达式匹配

Regex match after numbers before double underscore

我想提取从数字之后和双下划线之前开始的子字符串。下面你可以看到两个测试字符串和 ->.

之后的预期输出
'1234514 TEST STRING__blabla3452b' -> 'TEST STRING'
'16275653 TEST_STRING__bl67abla3452b' -> 'TEST_STRING'

到目前为止我想出的正则表达式:(?:^|\n)\d+([^__]+) 仅 returns 第一个而不是第二个输出,因为第二个下划线无法识别。我试图转义下划线,但这没有用。非常感谢任何帮助。

谢谢。

您可以使用

^\d+\s*(.*?)(?=__)
\d\s+(.*?)(?=__)

参见regex demo #1 and regex demo #2

详情:

  • ^ - 字符串开头
  • \d+ - 一位或多位数字
  • \s* - 零个或多个空格
  • (.*?) - 第 1 组:除换行字符外的任何零个或多个字符尽可能少
  • (?=__) - 紧跟 __.
  • 的位置