gpt4 book ai didi

java - 正则表达式匹配多个表达式?

转载 作者:行者123 更新时间:2023-12-01 11:48:05 29 4
gpt4 key购买 nike

(<link.*>)|(<img.*>)|(<input.*type=\"image\".*>)|(<script.*src=\".*\".*>)

我正在编写一个正则表达式,以便用 HTML 中的 Base64 数据 URI(不相关)替换所有出现的内联静态内容。每个表达式都可以完美地单独工作,但我需要按顺序排列它们,并且对于我正在处理的数据编写排序算法有点疯狂(这一切都已经很疯狂)。我认为这应该可行,但它不匹配其中的第一个正则表达式,但不匹配其他正则表达式。您如何匹配任何表达式?

<link.*>
<img.*>
<input.*type=\"image\".*>
<script.*src=\".*\".*>

我的Java代码:

    private final Pattern inlineLink = Pattern.compile("(<link.*>)|(<img.*>)|(<input.*type=\"image\".*>)|(<script.*src=\".*\".*>)", Pattern.CASE_INSENSITIVE);



Matcher mtch = inlineLink.matcher(html);
while (mtch.find()) {
String o = mtch.group();
if (!o.contains("href=")) continue;
String href = o.substring(o.indexOf("href=") + 5);
if (href.startsWith("\"")) {
href = href.substring(1, href.indexOf("\"", 1));
}else {
href = href.substring(0, href.indexOf(" "));
}
href = processHREF(href);
//do other stuffs

最佳答案

我建议加倍斜杠并将替代项放置在第一个捕获组内。

Pattern inlineLink = Pattern.compile("(<link.*>|<img.*>|<input.*type=\\\"image\\\".*>|<script.*src=\\\".*\\\".*>)", Pattern.CASE_INSENSITIVE);

关于java - 正则表达式匹配多个表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28998917/

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