1

私は現在、完全一致を置き換えるためにこのコードを使用しています。ただし、これは機能しません。つまり、単語が別の単語で表示される場所も削除されます。

例:

string pattern = "(?i)(flo)";
jobTitle = Regex.Replace("Florist of Vinyl Flowers of flo abc", pattern, string.Empty);

これは文字列を作成しています:

ビニールオリストのオリスト

どちらが間違っているかは、文字列からfloを削除するだけで、使用する場合は:

string pattern = "(?i)\b(flo)\b";

一致しませんが、完全な単語が含まれていても一致しません。一致するものはありません/

アップデート :

完全なコードは次のように実行されます。

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);
  }
4

2 に答える 2

1

「単語」が自分にとって何を意味するのかを理解し、正規表現を使用して定義する必要があります。

「\b」カテゴリに一致しない場合は、境界を定義する必要がある場合があります(つまり、@ "[\ s、.- $] +" "空白文字、文字列の開始/終了、句読点")。必要に応じて、接頭辞の後に単語の残りの部分を含めるために、@ \ w+"-"単語文字"カテゴリを使用する必要がある場合があります。

参照-文字クラス

サンプルtahtは、「flo」で始まる単語と一致する必要があります。

  string pattern = @"(?i)\b(flo\w+)\b";
于 2012-08-03T21:07:15.007 に答える
1

あなたはとても近かった、正規表現:(?i)\bflo\b

string pattern = @"(?i)\bflo\b";
jobTitle = Regex.Replace("Florist of Vinyl Flowers", pattern, string.Empty);

単語が「花屋」と「花」を意味するが「フロー」を意味しない場合は、これを使用してください(?i)\b[^ ]*flo[^ ]*\b

于 2012-08-03T21:07:29.967 に答える