想要用一个字符串替换一个字符串的模式,该字符串使用找到的模式中的信息?

时间:2014-01-15 10:03:47

标签: java regex string replaceall

如果没有这个例子,我很难解释这个问题:

我希望用字符串“Albert Pujols”替换字符串“switch('Pujols','Albert')”的每个实例,或者将字符串“switch('Cabrera','Melky')替换为字符串“Melky Cabrera”,全部都是Java。到目前为止我所拥有的是:

line = line.replaceAll("switch\\('(.*)','(.*)'\\)" , "\2 \1");

如果我可以使用\ 1和\ 2寄存器来引用第一个正则表达式中的模式(我知道我不能),这可能会正常工作。有没有办法在Java中操作这条线到我的偏好? switch不是我写的真正的函数,假设这是一个文本文件,我正在逐行阅读。

1 个答案:

答案 0 :(得分:3)

Java将$字符用于组引用:

line = line.replaceAll("switch\\('(.*)','(.*)'\\)" , "$2 $1");