我需要从字符串中提取包含在两个分隔符之间的一组字符,而不返回分隔符本身
一个简单的例子应该很有帮助:
Target:提取方括号之间的子字符串,而不返回括号本身
基本字符串:这是一个测试字符串[或多或少]
如果我使用以下注册表。前
\[.*?\]
匹配项是[或多或少]。我只需要获得或多或少的(不带括号)
有可能吗
简单易行:
(?<;=\[)(.*?(=\]))
从技术上讲,就是使用lookaheads和lookbehinds。请参阅前向和后向零宽度断言。该模式包括:
- 前面有一个[未捕获的](查找)
- 一个不贪婪的被俘虏群体。一开始就停下来是不贪婪的];及
- 后跟一个未捕获的[向前看]
或者,您可以只捕获方括号之间的内容:
\[(.*?)\]
并返回第一个捕获的组,而不是整个匹配