Java中的替换模式
我有以下案文:Java中的替换模式,java,regex,Java,Regex,我有以下案文: String text = "lorem ipsum @@MyText[1] lorem ipsum @@MyText[22]"; 我想用以下方式取代它: String text = "lorem ipsum /my/url/1 lorem ipsum /my/url/22; 我已经做了以下工作: String newText = text.replaceAll("@@MyText\\[\\d*\\]", "/my/url/%s"); 但通过这种方式,我得到: "lorem
String text = "lorem ipsum @@MyText[1] lorem ipsum @@MyText[22]";
我想用以下方式取代它:
String text = "lorem ipsum /my/url/1 lorem ipsum /my/url/22;
我已经做了以下工作:
String newText = text.replaceAll("@@MyText\\[\\d*\\]", "/my/url/%s");
但通过这种方式,我得到:
"lorem ipsum /my/url/%s lorem ipsum /my/url/%s;
如何替换给定的文本,但仍保留括号中的数字
非常感谢您您需要将
[…]
中找到的号码放置在单独的组中,并通过$id
使用该组中的匹配项替换,其中id
表示该组的号码
使用
您需要将在
[…]
中找到的编号放在单独的组中,并通过$id
使用该组中的匹配项替换,其中id
表示该组的编号
使用
你可以用括号捕捉数字并在替换中使用,我想你可以用括号捕捉数字并在替换中使用,我想就是这样!我用了更复杂的方法:“(@@MyText\[)(\\d*)(\])”,然后使用$2,但我更喜欢您的解决方案。非常感谢。就这样!我用了更复杂的方法:“(@@MyText\[)(\\d*)(\])”,然后使用$2,但我更喜欢您的解决方案。非常感谢。
replaceAll("@@MyText\\[(\\d+)\\]", "my/url/$1")
// ^^^^^^ group 1 ^^ part matched by group 1