双下划线之前的数字之后的正则表达式匹配
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 组:除换行字符外的任何零个或多个字符尽可能少
(?=__)
- 紧跟 __
. 的位置
我想提取从数字之后和双下划线之前开始的子字符串。下面你可以看到两个测试字符串和 ->
.
'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 组:除换行字符外的任何零个或多个字符尽可能少(?=__)
- 紧跟__
. 的位置