我如何使用c#正则表达式替换字符串中的任何单词

本文关键字:任何单 字符串 替换 何使用 正则表达式 | 更新日期: 2023-09-27 18:13:24

给定如下字符串:Fixing this [HFW] takes alot of [HFW] time [HFW]

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

我需要用[CW]替换除[HFW]标签以外的任何单词。我试了很多次,我得到的最好的是:

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

这几乎工作,但我得到第一个大写F被遗漏,是[HFW]标签的一部分。我的意思是,它不会把[HFW]作为一个组。

谢谢

我如何使用c#正则表达式替换字符串中的任何单词

我有一个有点…脾气暴躁吗?但是对于您的示例字符串,它确实奏效了:

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

[^...]的问题是它不查看字符'[, H, F, W']的顺序。

可能有一个比这个更优雅的,我还在努力寻找它。

另一个可能的:

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