正则表达式模式匹配
本文关键字:模式匹配 正则表达式 | 更新日期: 2023-09-27 18:31:57
嗨,我需要这样做。
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。 而且我需要用" ,<s>ctus<e>, "
替换" ,ctus, "
如何使用正则表达式实现这一点。我在 c# 中需要这个。夏普。
提前谢谢。
以下正则表达式匹配示例中列出的所有情况:
@"('bctu(?:''w+)?'w*'b)"
然后只需将匹配替换为@"<s>'1<e>"
其中'1
是对上述匹配项的反向引用。
您是否正在寻找第一个搜索模式的@"'bctu'b"
("ctu"两侧都有单词边界,因此它匹配ctu
但不匹配Actually
、ctu's
或,ctus,
)和",ctus,"
(确切地说是字符串,ctus,
,无论它可能落在单词中的哪个位置)作为第二个搜索模式? 要同时搜索这两个,您可以使用 @"('bctu'b|,ctus,)"
.
,在 C# 中,您可以使用@""
表示法(逐字字符串)而不是 ""
来更轻松地编写正则表达式文本。 例如,要让正则表达式理解单词边界,它必须看到 'b
,它可以表示为 @"'b"
或 "''b"
,而文字'
是 "''''"
或 @"''"
。 第一种更容易阅读,尤其是在更复杂的情况下。
如果这不能回答您的问题,请给出预期输入/输出的清晰示例。