我们如何在 Java 中使用正则表达式将下面的"x"子字符串替换为"y"子字符串?



[![在此处] [1]] [1] [1]我想使用Java中的正则表达式替换为substring src="/slm/attachment/63338424306/Note.jpg" CC_1。

以下是获取包含子字符串src="/slm/attachment/63338424306/Note.jpg"

的字符串列表的查询
criteria.add(Restrictions.like("comment", "%<img%"));
criteria.setMaxResults(1);
List<Comments> list = criteria.list();

如何使用Regex替换?请在这里帮助我。

假设 xxxxxxxxsrc="/slm/attachment/63338424306/Note.jpgxxxxxxxx是字符串,然后在替换后我期望 xxxxxxxxsrc="jira/rally/images/Note.jpgxxxxxxxx

否。63338424306可以是任何随机编号。图像名称&amp;格式" note.jpg"可以更改,即'abc.png'等

基本上,我想用jira/rally/images

替换/slm/attachment/63338424306/

感谢大家的回答。我已经更新了一个问题,请帮助我。

yourString.replaceAll("src="/slm/attachment", "src="/jira/rally/images");

您可以将捕获组用于src="零件并匹配要替换的部分。

(srcs*=s*")/slm/attachment/d+
  • (捕获组
    • srcs*=s*"匹配src,0 Whitespace Chars,=,0 Whitespace Chars和"
  • )关闭组
  • /slm/attachment/字面上的匹配
  • d+匹配1 数字

请注意,如果您只想匹配0 空格,并且不使用新线,则可以仅使用空间或[ t]*匹配空间和标签,而不是s*

在Java中

String regex = "(src\s*=\s*")/slm/attachment/\d+";

并在替换中使用第一个捕获组:

$1jira/rally/images

结果:

src="jira/rally/images/Note.jpg

REGEX演示|Java Demo

例如:

String string = "src  = "/slm/attachment/63338424306/Note.jpg";
System.out.println(string.replaceAll("(src\s*=\s*")/slm/attachment/\d+", "$1jira/rally/images"));
// src  = "jira/rally/images/Note.jpg

您可以使用以下替换序列:

String a = "abc 123 src="/slm/attachment/63338424306/Note.jpg abc 132";
String b = "abc 123 src="/slm/attachment/61118424306/Note.jpg xyz";
String c = "123xxsrc="/slm/attachment/51238424306/Note.jpgxx324";
System.out.println(a.replaceAll("(?<=src=")/slm/attachment/\d+","jira/rally/images"));
System.out.println(b.replaceAll("(?<=src=")/slm/attachment/\d+","jira/rally/images"));
System.out.println(c.replaceAll("(?<=src=")/slm/attachment/\d+","jira/rally/images"));

输出:

abc 123 src="jira/rally/images/Note.jpg abc 132
abc 123 src="jira/rally/images/Note.jpg xyz
123xxsrc="jira/rally/images/Note.jpgxx324

REGEX演示: https://regex101.com/r/ztrg49/7/

最新更新