C#正则表达式,用于跳过以某些字符开头的单词

时间:2016-09-16 03:11:39

标签: c# regex

我想找到并替换字符串中的一些单词。但我想跳过包含特殊字符的单词,例如“@,#,?,!”等。我写了一个,但问题是它也选择了第一个括号。

示例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!?

1 个答案:

答案 0 :(得分:0)

请尝试:((?<![#@\?!%$&])Victoria Basement)

在此处查看:https://regex101.com/r/tV1rV5/1

[编辑]添加说明:

因此[^#@?!%$&]Victoria Basement将为[^#@?!%$&]捕获1个字符,但如果(Victoria Basement它不匹配,那么您需要执行“negative look behind”以排除该字符来自匹配的字符,如(?<![#@\?!%$&]),如果你想捕获,你用()包裹所有内容! ;)