我正在尝试创建一个正则表达式,它会在单词(bar)中添加前缀(foo) 只有当它不存在并且有多个单词bar出现时。 同时忽略大写字母
字符串s =“叔叔吧,当他在酒吧时,他是一个骗子吧”
所以尝试以下方法:
String s = " uncle bar, is a foo bar kind of guy when he is at the bar ";
Pattern p;
Matcher m;
p = Pattern.compile("(?i) bar ");
m = p.matcher(s);
if(m.find()){
s = s.replaceAll("(?i) bar ", " foo bar ");
}
这将导致添加foo,即使它已经存在。 即“foo foo bar kind guy” 在尝试匹配时,我需要一个正则表达式来考虑我的模式的前缀。
提前致谢
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以使用负面的lookbehind来做到这一点
s.replaceAll("(?i)(?<!foo )bar", "foo bar")