Java正则表达式挑战-仅在需要时添加前缀
我正在尝试创建一个正则表达式,它将在单词(bar)中添加前缀(foo) 只有当它还没有出现时,以及当单词栏出现多次时。 也可以忽略大写字母 String s=“bar叔叔在酒吧时是一个foo bar类型的人” 因此,请尝试以下方法:Java正则表达式挑战-仅在需要时添加前缀,java,regex,Java,Regex,我正在尝试创建一个正则表达式,它将在单词(bar)中添加前缀(foo) 只有当它还没有出现时,以及当单词栏出现多次时。 也可以忽略大写字母 String s=“bar叔叔在酒吧时是一个foo bar类型的人” 因此,请尝试以下方法: 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 ")
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,即使它已经存在。
i、 e.“富富酒吧那种人”
我需要一个正则表达式,以便在尝试匹配模式时将其前缀考虑在内
提前感谢使用否定查找断言
s.replaceAll("(?i)(?<!\\bfoo )bar\\b", "foo bar");
s.replaceAll(“(?i)(?您可以使用反向查找来执行此操作
s.replaceAll("(?i)(?<!foo )bar", "foo bar")
s.replaceAll(“(?i)(?@AvinashRaj)我真的很抱歉,Avinash,但我通常会尝试在IDE上解决问题,而不是在检查后将其复制到这里。这使得问题持续了4分钟。