谁能建议一个正则表达式来匹配以下示例中的下划线:
test_test
test[_test
test_]
但不匹配:
test[_]test
这是使用 .Net 正则表达式库。我正在使用这个 RegEx 测试器来检查:
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
最佳答案
试试这个:
_[^\]]|[^[]_
它由 _[^\]]
的交替组成(下划线而不是 ]
)和 [^[]_
(不是 [
和下划线)。
或者如果你想使用环视断言来真正匹配下划线而不是周围的字符:
_(?=[^\]])|_(?<=[^[]_)
这匹配任何不跟]
的下划线。 ( (?=[^\]])
,正向预测)或任何前面没有 [
的下划线( (?<=[^[]_)
,消极的后视)。这可以组合成:
_(?:(?=[^\]])|(?<=[^[]_))
关于regex - 正则表达式匹配不被括号包围的下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/678316/