正则表达式的具体单词

时间:2012-08-31 17:55:07

标签: java regex

我试图为“[起始单词] [特定单词] [结束单词]”编写正则表达式,并使其不区分大小写。但由于某种原因,它似乎没有用。

我在java中这样做,因此额外的“\”。

例如,如果我想匹配“疯狂”这个词,我的正则表达式将是:

/\\bcrazy\\b/i

我调用正则表达式的java代码是:

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

4 个答案:

答案 0 :(得分: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");

结果:

  

我是一个超级疯狂的人,他也是一个超级疯狂的人。你是   还疯了吗?

答案 1 :(得分:3)

摆脱//i,并使用Pattern来获取不区分大小写:

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

textToMakeHarder = match.replaceAll("super crazy");

答案 2 :(得分:2)

Pattern pat = Pattern("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher("Your_Input");

while(mat.find()){

   mat.replaceAll("super crazy");

}

答案 3 :(得分:1)

你想尝试这个更简单的版本:

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

输出是:

foo bar is super crazy tonight

使用短修饰符(?i)进行不区分大小写的搜索。

Reference为模式的正式Java 7文档