只删除XXX,因为它前面没有其他单词。

3
我有一个正则表达式可以删除匹配前面的一个单词和一个单词,这个正则表达式效果相当不错 - (?i)\s*\S+\s+\bXXX\b 我需要修改这个正则表达式,让它只在XXX前面没有其他单词时才删除。因此,如果我有

XXX ABC

输出将是 " ABC" 。

你说的“它之前没有其他单词”是什么意思?你的意思是在XXX之前没有其他单词字符\w吗? - Sweeper
我是说如果字符串以XXX开头,那么只需删除XXX。 - Vnuuk
2个回答

1

根据您的评论:

我的意思是,如果字符串以XXX开头,那么就将XXX删除

那么只需匹配^XXX并用空字符串替换匹配项即可。

var regex = new Regex("^XXX");
regex.Replace("XXX ABC", "")

如果你想要将XXX与其后的任何非单词字符匹配,例如:
",XXX ABC" -> ", ABC"
"    XXX ABC" -> "     ABC"

尝试使用这个正则表达式:
^(\W*)XXX

将其翻译成中文:

并用$1替换。


1
尝试使用这个正则表达式:

(?i)(?:\s*\S+\s+)?\bXXX\b

点击查看演示

我刚刚让这个(?:\s*\S+\s+)?变成了可选项


很棒的回答!谢谢。 - Vnuuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接