html src正则表达式,Java正则表达式获得html字符串里的<img src=""/> 中的url列表

在帮朋友写代码的时候,遇到一个场景,需要获取富文本编辑器里的图片URL集合。

最简单的办法就是使用 正则表达式,记录一下。

public static List getImgSrc(String htmlStr) {

String img = "";

Pattern imgPattern;

Matcher imgMatcher;

List pics = new ArrayList<>();

String imgReg = "]*?>";

imgPattern = Pattern.compile(imgReg, Pattern.CASE_INSENSITIVE);

imgMatcher = imgPattern.matcher(htmlStr);

while (imgMatcher.find()) {

img = img + "," + imgMatcher.group();

Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);

while (m.find()) {

pics.add(m.group(1));

}

}

return pics;

}

/**

* 测试

* @param args

*/

public static void main(String[] args) {

String htmlStr = "

awards.jpg%5C%22

blog1.jpg%5C%22

blog4.jpg%5C%22

";

System.out.println(getImgSrc(htmlStr));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的样例,我假设您想要提取文本和标签的类型。如果您想要提取的标签类型不同,请在代码相应地进行修改。以下是示例代码: ```javascript function getTextWithType(text) { const regex = /<(\/?)(\w+)[^>]*>([^<]*)/g; const result = []; let match; while ((match = regex.exec(text)) !== null) { if (match[1] === '/') { // 关闭标签 result.push({ text: '', type: `/${match[2]}` }); } else if (match[3].trim() !== '') { // 开始标签 result.push({ text: match[3], type: match[2] }); } } return result; } // 示例用法 const text = '12331231<img src="123" />31231231<div>312</div>'; const result = getTextWithType(text); console.log(result); ``` 在上面的代码示例,我们定义了一个名为 `getTextWithType` 的函数,该函数将接受一个文本字符串作为参数。我们使用正则表达式来查找文本所有的标签,并将它们存储在 `result` 数组。我们使用 `(\/?)` 来匹配开头的斜杠(用于区分开始和结束标签),并使用 `(\w+)` 匹配标签的名称。我们还使用 `[^>]*` 来匹配标签的所有属性。最后,我们使用 `[^<]*` 来匹配标签的文本内容。 在代码,我们使用 `while` 循环遍历所有匹配项,并根据每个匹配项的内容将其添加到 `result` 数组。如果匹配项是关闭标签,则我们将其添加到 `result` 数组,类型为 `/${match[2]}`。如果匹配项是开始标签,则我们将其添加到 `result` 数组,类型为 `match[2]`,文本为 `match[3]`。 请注意,这只是一个简单的示例函数,它只适用于简单的 HTML 文本,而且也无法处理嵌套标签等复杂情况。如果您需要更复杂的处理方式,请根据您的具体需求进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值