我试图为“[开始词] [特定词] [结束词]”编写一个正则表达式,并使其不区分大小写。但由于某种原因,它似乎不起作用。
我在java中做,因此额外的“\”。
例如,如果我想匹配“crazy”这个词,我的正则表达式将是:
/\\bcrazy\\b/i
我在其中调用不匹配任何内容的正则表达式的 java 代码是:
textToMakeHarder = textToMakeHarder.replaceAll("/\\bcrazy\\b/i", "super crazy");
试试这个:
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");
结果:
我是一个超级疯狂的人,他也是一个超级疯狂的人。你也疯了吗?
去掉/
and /i
,并使用 aPattern
来区分大小写:
Pattern pattern = Pattern.compile("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
Matcher match = pattern.matcher(textToMakeHarder);
textToMakeHarder = match.replaceAll("super crazy");
Pattern pat = Pattern("\\bcrazy\\b",Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher("Your_Input");
while(mat.find()){
mat.replaceAll("super crazy");
}
你想试试这个更简单的版本:
String textToMakeHarder = "foo bar is CraZY tonight".replaceAll("(?i)\\bcrazy\\b", "super crazy");
输出是:
foo bar is super crazy tonight
使用短修饰符 (?i) 进行不区分大小写的搜索。
参考关于模式的官方 Java 7 文档