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 /i,并使用 aPattern来区分大小写:

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 回答