正则表达式替换字符串中的所有字符

时间:2014-06-27 11:00:23

标签: java regex

我需要正则表达式来替换除字符串中的第一个匹配字符以外的所有匹配字符。

例如;

与'A'匹配并替换为'B'

  • 'AAA'应替换为'ABB'

  • 'AAA AAA'应替换为'ABB ABB'

与''匹配并替换为'X'

  • '[space] [space] [space] [space] [space] [space]'应替换为'[space] XXA [space] XX'

2 个答案:

答案 0 :(得分:5)

您需要使用此正则表达式进行替换:

\\BA

Working Demo

  • \B(在单词字符之间)断言\b(字边界)不匹配的位置
  • A字面匹配字符A

Java代码:

String repl = input.replaceAll("\\BA", "B");

更新对于问题的第二部分,请使用此正则表达式进行替换:

"(?<!^|\\w) "

<强>代码:

String repl = input.replaceAll("(?<!^|\\w) ", "X");

Demo 2

答案 1 :(得分:4)

负面观察和字符串锚定的开始

像这样使用正则表达式(?<!^| )A

String resultString = subjectString.replaceAll("(?<!^| )A", "B");

the demo中,检查底部的替换。

<强>解释

  • (?<!^| )断言位置前面的内容既不是字符串的开头也不是空格字符
  • A匹配A

<强>参考