假设我有以下字符串
String Context = "old1 old2 old3 old4 old5 old6"我想做一个模式:(old2).*(old4)
所以word 2应该在$1中,而word4应该在$2中。
有没有什么函数或方法可以同时替换这两个单词字符串?只使用组变量($1和$2)?
所以我可以将$1指定为new2,将$2指定为new4。我不希望必须找到字符串old2和old4并将其替换为new2和new4
发布于 2014-07-18 08:18:13
只有一个组需要
如果我理解的话,这就是你需要的:
String replaced = yourString.replaceAll("old2(.*?)old4", "new2$1new4");说明
old2匹配文字chars(.*?)懒惰地匹配字符(将它们捕获到组1),将to...old4new4的内容new2一起向上
发布于 2014-07-18 08:20:46
你可以考虑在这里使用积极的前视。
String s = "old1 old2 old3 old4 old5 old6";
String r = s.replaceAll("old(?=[24])", "new");
System.out.println(r); //=> "old1 new2 old3 new4 old5 old6"Lookarounds是零宽度断言。它们不会消耗字符串中的任何字符。
这将删除“旧的”,将其替换为“新的”断言(2或4)跟在后面。
发布于 2014-07-18 08:15:46
一个简单的replace怎么样
"old1 old2 old3 old4 old5 old6".replace("old2", "new2").replace("old4", "new4");当然,原始字符串、替换目标和替换替换可以是变量。
https://stackoverflow.com/questions/24815523
复制相似问题