0

「[始まりの単語][特定の単語][終わりの単語]」の正規表現を書き、大文字と小文字を区別しないようにしようとしていました。しかし、何らかの理由でそれが機能していないようです。

私はJavaでそれをやっているので、余分な "\".

たとえば、「crazy」という単語に一致させたい場合、正規表現は次のようになります。

/\\bcrazy\\b/i

何にも一致しない正規表現を呼び出す私のJavaコードは次のとおりです。

textToMakeHarder = textToMakeHarder.replaceAll("/\\bcrazy\\b/i", "super crazy");
4

4 に答える 4

6

これを試して:

  String textToMakeHarder = "I am a crazy person and he is also a crazy person. Are you crazycrazy too?";
  Pattern re = Pattern.compile("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
  Matcher m = re.matcher(textToMakeHarder);
  textToMakeHarder = m.replaceAll("super crazy");

結果:

私は超クレイジーな人で、彼も超クレイジーな人です。あなたもクレイジークレイジーですか?

于 2012-08-31T18:01:55.363 に答える
3

/andを取り除き、/ia を使用しPatternて大文字と小文字を区別しません。

Pattern pattern = Pattern.compile("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
Matcher match = pattern.matcher(textToMakeHarder);

textToMakeHarder = match.replaceAll("super crazy");
于 2012-08-31T18:04:28.173 に答える
2
Pattern pat = Pattern("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher("Your_Input");

while(mat.find()){

   mat.replaceAll("super crazy");

}
于 2012-08-31T17:59:45.587 に答える
1

この単純なバージョンを試してみたいと思います:

String textToMakeHarder = "foo bar is CraZY tonight".replaceAll("(?i)\\bcrazy\\b", "super crazy");

出力は次のとおりです。

foo bar is super crazy tonight

大文字と小文字を区別しない検索に短い修飾子 (?i) を使用します。

パターンに関する Java 7 の公式ドキュメントへの参照

于 2012-08-31T18:27:47.183 に答える