正则表达式:匹配包含特殊字符的单词
Regex: Match word containing special characters
我目前正在使用 oniguruma 正则表达式来搜索类似匹配项的功能,但某些关键字除外。例如,在字符串中
“这是一个 test() 和 im() testing() thi[s]() this_[is]_a_fun(with,some,params)”
正则表达式应该匹配:
test
,
im
,
testing
,
thi[s]
this_[is]_a_fun
我目前使用的正则表达式是
\s*([A-z0-9\w_]+).?(?=\()(\b(?<!if|while|for|return|else|elif|equals|or|xor|and|not|le|gre))
但这不匹配 thi[s]
或任何包含单词中括号的函数。
我尝试更新正则表达式以将这些模式与正则表达式相匹配
\s*([A-z0-9\w_|\[|\]]+).?(?=\()(\b(?<!if|while|for|return|else|elif|equals|or|xor|and|not|le|gre))
但无济于事。
如能提供匹配此类模式的任何帮助,我们将不胜感激
试试这个正则表达式:
([\w+\[\]]+)(?=\([\w+,]*\))
Demo
详情:
\w+
匹配任何单词字符(等于[a-zA-Z0-9_])一次或多次
\[
按字面意思匹配字符 [
\]
按字面意思匹配字符 ]
+
匹配 1 次或多次
- Positive Lookahead
(?=\([\w+,]*\))
匹配字符 (
和 [\w+,]
中的任何字符以及
字符 )
字面意思。
[\w+,]*
匹配任何单词字符(等于 [a-zA-Z0-9_])并且 ,
零次或多次。
我目前正在使用 oniguruma 正则表达式来搜索类似匹配项的功能,但某些关键字除外。例如,在字符串中 “这是一个 test() 和 im() testing() thi[s]() this_[is]_a_fun(with,some,params)”
正则表达式应该匹配:
test
,
im
,
testing
,
thi[s]
this_[is]_a_fun
我目前使用的正则表达式是
\s*([A-z0-9\w_]+).?(?=\()(\b(?<!if|while|for|return|else|elif|equals|or|xor|and|not|le|gre))
但这不匹配 thi[s]
或任何包含单词中括号的函数。
我尝试更新正则表达式以将这些模式与正则表达式相匹配
\s*([A-z0-9\w_|\[|\]]+).?(?=\()(\b(?<!if|while|for|return|else|elif|equals|or|xor|and|not|le|gre))
但无济于事。
如能提供匹配此类模式的任何帮助,我们将不胜感激
试试这个正则表达式:
([\w+\[\]]+)(?=\([\w+,]*\))
Demo
详情:
\w+
匹配任何单词字符(等于[a-zA-Z0-9_])一次或多次\[
按字面意思匹配字符[
\]
按字面意思匹配字符]
+
匹配 1 次或多次- Positive Lookahead
(?=\([\w+,]*\))
匹配字符(
和[\w+,]
中的任何字符以及 字符)
字面意思。 [\w+,]*
匹配任何单词字符(等于 [a-zA-Z0-9_])并且,
零次或多次。