正则表达式:匹配包含特殊字符的单词

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_])并且 , 零次或多次。