regex - 正则表达式:匹配包含特殊字符的单词
问题描述
我目前正在使用 oniguruma 正则表达式来搜索类似匹配的功能,但某些关键字除外。例如,在字符串“this is a test() and 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+,]*\))
演示
详情:
\w+
匹配任何单词字符(等于 [a-zA-Z0-9_])一次或多次\[
[
从字面上匹配字符\]
]
从字面上匹配字符+
匹配 1 次或多次- Positive Lookahead从字面上
(?=\([\w+,]*\))
匹配字符(
和任何字符[\w+,]
。)
[\w+,]*
匹配任何单词字符(等于 [a-zA-Z0-9_])并且匹配,
零次或多次。
推荐阅读
- excel - Excel Tick Marks 改变数据显示
- jquery - 如何使用 jQuery 动态创建包含数据列表的 HTML 输入?
- sql - IBM DB2 SQL Count 总是返回 1 和多行
- python - 如何使用决策边界分隔散点图?
- excel - 将单元格值与 If 公式的结果连接起来
- javascript - Discord Bot - 设置嵌入表/列表,内容分为多个部分
- python - Python:获取导入函数的名称
- javascript - 无法定位元素 - Selenium Javascript 测试
- c# - 如何解决 BC30560:命名空间“System.Runtime.CompilerServices”中的“ExtensionAttribute”不明确?
- batch-file - 批处理文件中的嵌套 for 循环失败