]*> 我知道这个正则表达式用于检索 src 的值。谁能教我如何解释这个表达?坚持下去。 最佳答案 解释: ]+匹配除 > 之外-6ren">
gpt4 book ai didi

java - 需要正则表达式建议

转载 作者:行者123 更新时间:2023-12-02 07:52:09 25 4
gpt4 key购买 nike

<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>

我知道这个正则表达式用于检索 src 的值。谁能教我如何解释这个表达?坚持下去。

最佳答案

解释:

  • <img完全匹配字符串 "<img"
  • [^>]+匹配除 > 之外的所有内容的多次,所以标签不会被关闭
  • src完全匹配字符串“src”
  • \\s*匹配任意数量的空白字符
  • =完全匹配字符串“=”
  • \\s*匹配任意数量的空白字符
  • ['\"]匹配两个引号。双引号被转义,否则它将终止正则表达式的字符串
  • ([^'\"]+) mathches 多次计算除引号之外的所有内容。内容包含在括号中,以便将它们声明为组并可以稍后检索
  • ['\"]匹配两个引号。双引号被转义,否则它将终止正则表达式的字符串
  • [^>]*匹配剩余的非 ">"字符
  • >完全匹配字符串 ">" ,标签的右括号。

我不同意这个表达式是废话,只是有点复杂。

编辑这里有一些示例代码:

String str = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>";
String text = "<img alt=\"booo\" src=\"image.jpg\"/>";
Pattern pattern = Pattern.compile (str);
Matcher matcher = pattern.matcher (text);

if (matcher.matches ())
{
int n = matcher.groupCount ();
for (int i = 0; i <= n; ++i)
System.out.println (matcher.group (i));
}

输出为:

<img alt="booo" src="image.jpg"/>
image.jpg

所以matcher.group(1)返回你想要的。对这段代码进行一些实验。

关于java - 需要正则表达式建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110312/

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