正则表达式模式匹配

时间:2012-04-23 15:50:07

标签: c# regex

嗨,我需要这样做。

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#中使用它。 CSHARP。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您是否正在寻找@"\bctu\b"(“ctu”,双方都有字边界,因此它与ctu匹配,但不匹配Actuallyctu's或{{1} })对于第一个搜索模式和,ctus,(完全是字符串",ctus,",无论它在哪里可能落入一个单词)作为第二个搜索模式?要一次搜索这两个,您可以使用,ctus,

稍微说一下,在C#中,使用@"(\bctu\b|,ctus,)"表示法(verbatim strings)代替@"",可以更轻松地编写正则表达式文字。例如。为了让正则表达式理解单词边界,它必须看"",可以表示为\b@"\b",文字"\\b"\"\\\\"。第一个更容易阅读,特别是在更复杂的情况下。

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

答案 1 :(得分:0)

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

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

然后只需将匹配替换为@"<s>\1<e>",其中\1是上述匹配的反向引用。