可以用正则表达式排除完全匹配吗?[重复]

问题描述 投票:0回答:1

我想写一个正则表达式,返回介于 Start_MATCHED_End 哪儿 MATCHED 任何东西,但不是一个空字符串。但是,我不想返回完全匹配。

以下是一些无效的字符串

Start__End
Start_ _End
Start_     _End
off

以下是一些有效的字符串

Start_test_End                      << returns test
Start_123_starts_with_number_End    << returns 123_starts_with_number
Start_end_with_number_123_End       << returns end_with_number_123
Start_contains_a_number_End         << returns contains_a_number
Start_123_End                       << returns 123

我写了以下正则表达式 Start_(.*\S.*)_End. 如你所见 此处 它为每个测试字符串返回两个匹配 1. 完整匹配 2. 第1组

如何排除完整匹配的返回?

regex regex-group regex-negation
1个回答
1
投票

如果你只想匹配,你可以使用正向查找法,并且匹配1个以上的非空格字符,而不使用正向查找法。.* 左边和右边

(?<=^Start_)[^\S\r\n]*\S.*(?=_End\r?$)

Regex演示

© www.soinside.com 2019 - 2024. All rights reserved.