目前,如果要操作的字符串是abXYabcXYZ,我想要删除所有不是“abc”的东西。我的正则表达式命令是这样的:
[^abc]
返回ab ++ abc +++,当我需要返回++++ abc +++时。如果我使用相同的字符串来操作,但只替换不是“ab”的任何东西,我会得到ab ++ ab ++++,这是正确的。我如何做到这一点,以便第一次测试不会在ab中添加,当它缺少c?
时答案 0 :(得分:0)
正如NullUserExceptionఠ_ఠ所解释的那样,正则表达式[^ abc]表示任何不是a
,b
或c
的单个字符。
使用此正则表达式在ab++abc+++
上执行替换只会将+
(+
是[^ abc])替换为+
(我认为您正在替换[ ^ abc]到+
)导致字符串保持不变。
至于第二种情况,我想你想要使用正则表达式[^ ab],它将匹配字符c
和+
并得到结果ab++ab++++
。
这解释了为什么你有这个。我真的不知道是否有任何正则表达式与\w+
匹配,而不是像abc
那样的特定字符串。在某些情况下,您可以将abc
替换为另一个不是%
等字符的字符串,并将所有\w
替换为+
,然后替换{ {1}}返回%
。
希望它有用。