首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么replaceAll(regex,替换)而replaceAll(regex,regex)?

为什么replaceAll(regex,替换)而replaceAll(regex,regex)?
EN

Stack Overflow用户
提问于 2014-01-08 13:24:00
回答 2查看 429关注 0票数 0

Java确实有这个功能,谢谢您的回答,很遗憾我对API不感兴趣.

例如:

代码语言:javascript
复制
String strOriginal = "A:B&C@D";

我认为在java中应该有一个非常好的方法来像这样修改它:

代码语言:javascript
复制
String strNew = NewReplaceAll("(.*?)\\:(.*?)&(.*?)@(.*?)","\4_\3^\2(\1\2\2\1)");

这可能会产生这样的结果:

代码语言:javascript
复制
AssertTrue(strNew.equalsWith("D_C^B(ABBA)") );
EN

回答 2

Stack Overflow用户

发布于 2014-01-08 13:27:19

我认为,您的工作印象是,第二个String参数不接受-引用。

确实如此。

例如:

代码语言:javascript
复制
System.out.println("foo123".replaceAll("foo(.+)", "baz$1"));

输出:

代码语言:javascript
复制
baz123
票数 3
EN

Stack Overflow用户

发布于 2014-01-08 13:35:33

它确实接受regex作为替代,但它使用“美元”表示法(而不是“反斜杠”符号)作为反向引用。

所以你的例子应该是:

代码语言:javascript
复制
String strNew = str.replaceAll("(.*?)\\:(.*?)&(.*?)@(.*?)","$4_$3^$2($1$2$2$1)");

注意,捕获的组1被称为$1,而不是\1等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20996965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档