[英]Regex for specific word
我试图为“ [开始单词] [特定单词] [结束单词]”编写一个正则表达式,并使其不区分大小写。 但是由于某种原因,它似乎不起作用。
我正在用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");
结果:
我是一个超级疯狂的人,他也是一个超级疯狂的人。 你也疯了吗?
摆脱/
和/i
,并使用Pattern
来实现不区分大小写的功能:
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
使用short修饰符(?i)进行不区分大小写的搜索。
对Patterns的官方Java 7文档的引用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.