繁体   English   中英

如何使用C#正则表达式替换字符串中除一个单词以外的任何单词?

[英]How can i replace any word but one in a string using C# regex?

给定这样的字符串: Fixing this [HFW] takes alot of [HFW] time [HFW]

应该是这样的: [CW] [CW] [HFW] [CW] [CW] [CW] [HFW] [CW] [HFW]

除了标签[HFW]之外,我需要用[CW]替换任何单词。 我已经尝试了很多,我最好的是:

regex = new Regex(@"[^(\[HFW\])_]+");
cleanText = regex.Replace(cleanText, " [CW] ");

几乎可以用,但是我遗漏了第一个大写字母F,它是[HFW]标签的一部分。 我的意思是, [HFW]不会作为一个小组。

谢谢

我有一个有点……胡思乱想? 但这可以解决您的示例字符串的问题:

(?<!\[|F|\[F)\w+(?!W|\]|W\]\])

[^...]的问题在于它没有查看字符\\[HFW\\]的顺序。

可能比这更优雅的一种,我仍在尝试寻找。

另一个可能的:

\w+(?=\s)|(?<=\s)\w+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM