我目前正在使用此代码来替换完全匹配。然而,这不起作用,它也移除了换句话说出现在单词的地方。如何只使用正则表达式替换文本中的确切词c#
例子:
string pattern = "(?i)(flo)";
jobTitle = Regex.Replace("Florist of Vinyl Flowers of flo abc", pattern, string.Empty);
这使得字符串:
乙烯owers的奥里斯
哪项是错误的,应该只从字符串中删除FLO,如果我用途:
string pattern = "(?i)\b(flo)\b";
但是这不匹配即使在有一个完整的字,它不会匹配,没有匹配/
UPDATE:
完整的代码运行是这样的:
splitter = wordToremoveTitle.Split('|');
if (splitter.Length > 0)
{
for (int t = 0; t < splitter.Length ; t++)
{
String pattern = @"(?i)\b(" + splitter[t] + ")\b";
jobTitle = Regex.Replace(jobTitle, pattern, string.Empty);
}
'\ b'是退格的C#字符文字。你需要再次将它转义为'\\ b',或者使用一个逐字串:'string pattern = @“(?i)\ b(flo)\ b”;' – vcsjones 2012-08-03 21:05:23
@vcsjones我做了,改成(?i )\\ b(florist)\ b但是这甚至不会将花店从原始字符串移出来...... string pattern = @“(?i)\ b(”+ splitter [t] +“)\ b”; – confusedMind 2012-08-03 21:08:09
jobTitle = jobTitle.Replace(“flo”,string.Empty); – 2012-08-03 21:11:34