Skip to main content
 首页 » 编程设计

c#之匹配整个单词或短语的正则表达式

2024年02月01日28kerrycode

我有以下输入:

Hewlett Packard LaserJet 打印机配件

我需要以下输出:

LaserJet 打印机配件

基于 Hewlett Packard 被匹配。

我相信这是 Regex 的完美候选者(我可能是错的),不幸的是,我的经验有限,但一系列字符串拆分和连接似乎很冗长。

我尝试过的

return Regex.Replace(FullProductName, "\b" + ManufacturerName + "\b", string.Empty, RegexOptions.IgnoreCase); 

我发现这不起作用,因为 \b 指的是单词边界,但这里我有一个短语。

注意:有时可能是 Sony 或其他单字制造商名称。

请您参考如下方法:

您可以使用以下正则表达式来匹配制造商名称 Hewlett Packard 或开头的任何其他单字制造商名称。用空字符串替换匹配的字符串将为您提供所需的输出。

正则表达式:

^(Hewlett Packard\s*|[A-Z][a-z]+\s*) 

替换字符串:

Empty string 

DEMO

代码:

string str = @"Hewlett Packard LaserJet Printer Thingy 
Sony LaserJet Printer Thingy"; 
string result = Regex.Replace(str, @"(?m)^(Hewlett Packard\s*|[A-Z][a-z]+\s*)", ""); 
Console.WriteLine(result); 
Console.ReadLine(); 

IDEONE