[![在此处] [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/