regex - 正则表达式匹配不被括号包围的下划线?

标签 regex

谁能建议一个正则表达式来匹配以下示例中的下划线:

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/

相关文章:

javascript - 正则表达式在键入时验证数字

python - nltk 的 text6 中第一个字母为大写,所有其他字母为小写

使用 clang 3.5.0 和 libstdc++ 4.8.2 的 C++11 std::regex_replace 行为

regex - htaccess动态重写规则,统计字符数

Javascript Regexp - 替换函数应该决定不替换匹配的字符串,以让其他带括号的子匹配字符串与匹配一起使用

java - 正则表达式去除被视为字符串的前导零

支持Unicode的Java正则表达式?

java - 正则表达式删除两个字符串之间的所有内容但有重复

r - 在 R 中使用 grep 和 * 字符来指示 "anything"字符

Javascript 正则表达式 : Using variables in backreference pattern?