我有以下输入:
Hewlett Packard LaserJet Printer Thingy
我需要以下输出:
LaserJet Printer Thingy
基于匹配的Hewlett Packard
。
我相信这是Regex的完美候选人(我可能错了),不幸的是,我的经验有限,但是一系列的字符串拆分和加入似乎很冗长。
我尝试过什么
return Regex.Replace(FullProductName, "\b" + ManufacturerName + "\b", string.Empty, RegexOptions.IgnoreCase);
我发现这不起作用,因为\b
指的是单词边界,但这里有一个短语。
注意:有时可能是Sony
或其他单字制造商名称。
答案 0 :(得分:3)
您可以使用以下正则表达式来匹配制造商名称Hewlett Packard
或任何其他单字制造商名称。用空字符串替换匹配的字符串将为您提供所需的输出。
正则表达式:
^(Hewlett Packard\s*|[A-Z][a-z]+\s*)
替换字符串:
Empty string
<强>代码:强>
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();
答案 1 :(得分:2)
我认为你不需要正则表达式。只需StartsWith
和Remove
即可。
string text = "Hewlett Packard LaserJet Printer Thingy";
string manufacturer = "Hewlett Packard";
if(text.StartsWith(manufacturer))
{
var product = text.Remove(0, manufacturer.Length).TrimStart();
//TrimStart used for trimming leading spaces
}