我目前正在使用此代碼來替換完全匹配。然而,這不起作用,它也移除了換句話說出現在單詞的地方。如何只使用正則表達式替換文本中的確切詞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