gpt4 book ai didi

Java正则表达式替换大字符串中的多个文件路径

转载 作者:行者123 更新时间:2023-12-01 18:56:33 25 4
gpt4 key购买 nike

所以我不是正则表达式专业人士,我正在寻找一种好方法来做到这一点。我有一个大字符串,其中包含可变数字 <img>标签。我需要将所有这些图像的路径更改为 images/ 。大字符串还包含其他内容,而不仅仅是这些 img。

<img src='http://server.com/stuff1/img1.jpg' />
<img src='http://server.com/stuff2/img2.png' />

将服务器名称替换为 ReplaceAll()我可以做,这是中间的变量路径,我不知道如何包含。它不一定需要是正则表达式,但循环整个字符串似乎很浪费。

最佳答案

以下内容应该适用于替换所有 <img>链接到 server.com 中的 jpg 的标签:

s.replaceAll("<img src='http://server.com[^']*/([^']*)' />", "<img src='images/$1' />");

如果您在 src 周围使用双引号属性:

s.replaceAll("<img src=\"http://server.com[^\"]*/([^\"]*)\" />", "<img src=\"images/$1\" />");

这有效是因为 [^']*/将匹配尽可能多的非单引号字符,然后是文字“/”,因此它将消耗整个路径。如果都是<img>标签来自 server.com 您可以删除 http://server.com正则表达式将以同样的方式工作。

请注意,如果您事先知道所有图像标签都需要替换,或者您的字符串仅包含 <img>,则可以进一步缩短此长度。标签,例如,您可以使用以下内容来替换所有 src 中的路径属性:

s.replaceAll("src='[^']*/([^']*)'", "src='images/$1'");

如果替换的内容超出了您的预期,只需添加更多您想要匹配到正则表达式的文字字符串即可。

关于Java正则表达式替换大字符串中的多个文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13767616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com