我试图为“[起始单词] [特定单词] [结束单词]”编写正则表达式,并使其不区分大小写。但由于某种原因,它似乎没有用。
我在java中这样做,因此额外的“\”。
例如,如果我想匹配“疯狂”这个词,我的正则表达式将是:
/\\bcrazy\\b/i
我调用正则表达式的java代码是:
textToMakeHarder = textToMakeHarder.replaceAll("/\\bcrazy\\b/i", "super crazy");
答案 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文档