我想找到并替换字符串中的一些单词。但我想跳过包含特殊字符的单词,例如“@,#,?,!
”等。我写了一个,但问题是它也选择了第一个括号。
示例1:
(Victoria Basement OR QVB @Victoria Basement #Victoria Basement ?#Victoria Basement!?)
更新
例2:
(Victoria Basement OR QVB @Victoria Basement #Victoria Basement ?#Victoria Basement!? Victoria Basement@ Victoria Basement's
正则表达式:
[^#@?!%$&]Victoria Basement
预期输出:它应该只选择“Victoria Basement
”而不是“(Victoria Basement
”或“@Victoria Basement #Victoria Basement ?#Victoria Basement!?
”
答案 0 :(得分:0)
请尝试:((?<![#@\?!%$&])Victoria Basement)
在此处查看:https://regex101.com/r/tV1rV5/1
[编辑]添加说明:
因此[^#@?!%$&]Victoria Basement
将为[^#@?!%$&]
捕获1个字符,但如果(Victoria Basement
它不匹配,那么您需要执行“negative look behind”以排除该字符来自匹配的字符,如(?<![#@\?!%$&])
,如果你想捕获,你用()
包裹所有内容! ;)