0

嗨,我需要这样做。

Actually **ctu** is a good university but **ctu's** is not. There are many **,ctus,** present.

我想做的是,我想像这样替换字符串中的 ctu 。

Actually **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,<s>ctus<e>,** present.

但是使用以下模式

**\\bctu*(?:['\\\\|""\\\\]*)\\w+\\b**

我得到了输出:

A**<s>ctu<e>**ally **<s>ctu<e>** is a good university but **<s>ctu's<e>** is not. There are many **,ctus,**   present.

实际上,我不想在单词中替换 ctu。我还需要替换" ,ctus, "" ,<s>ctus<e>, " 如何使用正则表达式实现这一点。我在 c# 中需要这个。夏普。

提前致谢。

4

2 回答 2

0

您是否正在寻找@"\bctu\b"("ctu" 两边都有单词边界,因此它匹配ctu但不匹配Actually, ctu's, or ,ctus,) 作为第一个搜索模式和",ctus,"(确切地说是字符串,ctus,,无论它可能落在单词中的哪个位置)作为第二个搜索模式? 要同时搜索这两个,您可以使用@"(\bctu\b|,ctus,)".

顺便说一句,在 C# 中,您可以通过使用@""表示法(逐字字符串)而不是"". 例如,要让正则表达式理解单词边界,它必须看到\b,它可以表示为@"\b"or "\\b",而文字\"\\\\"or @"\\"。第一个更容易阅读,尤其是在更复杂的情况下。

如果这不能回答您的问题,请给出预期输入/输出的明确示例。

于 2012-04-23T15:53:32.740 回答
0

以下正则表达式匹配您的示例中列出的所有情况:

@"(\bctu(?:'\w+)?\w*\b)"

然后只需将匹配替换为上面匹配@"<s>\1<e>"\1反向引用。

于 2012-04-23T18:28:16.380 回答