【发布时间】:2016-10-14 11:00:52
【问题描述】:
我想用 java regex replace 替换句子中的一个单词。
测试字符串是a_b a__b a_bced adbe a_bc_d 'abcd' ''abcd''
如果我想替换所有以 a & 以 d 开头的单词。
我正在使用String.replaceAll("(?i)\\ba[a-zA-Z0-9_.]*d\\b","temp")。
替换为a_b a__b temp adbe a_bc_d 'temp' ''temp''
如果我不想考虑引号中的字符串,我的正则表达式应该是什么?
我用String.replaceAll("[^'](?i)\\ba[a-zA-Z0-9_.]*d\\b[^']","temp")
将其替换为a_b a__btempadbe temp'abcd' ''abcd''。
它删除了那个单词的一个空格。
有没有办法只替换不在引号内的那个字符串?
PS:这个String.replaceAll("[^'](?i)\\ba[a-zA-Z0-9_.]*d\\b[^']"," temp ") 有一个解决方法。但在某些情况下它会失败。
如果我想替换句子中的一个单词,我的正则表达式应该是什么,并且我不应该考虑侧引号中的字符串。? 提前谢谢...!!!
【问题讨论】:
标签: java regex string replace replaceall