任何人都可以建议正则表达式匹配以下示例中的下划线:
test_test
test[_test
test_]
Run Code Online (Sandbox Code Playgroud)
但不符合这个:
test[_]test
Run Code Online (Sandbox Code Playgroud)
这是使用.Net正则表达式库.我正在使用这个RegEx测试仪来检查:
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
试试这个:
_[^\]]|[^[]_
Run Code Online (Sandbox Code Playgroud)
它由_[^\]](下划线和非下划线])和[^[]_(不是[和下划线)的交替组成.
或者,如果您想使用环视断言来真正匹配下划线而不是周围的字符:
_(?=[^\]])|_(?<=[^[]_)
Run Code Online (Sandbox Code Playgroud)
这种匹配是后面没有任何下划线]((?=[^\]]),积极先行),或不是由之前的任何下划线[((?<=[^[]_)负向后看).这可以结合到:
_(?:(?=[^\]])|(?<=[^[]_))
Run Code Online (Sandbox Code Playgroud)