Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要正则表达式建议吗 ]*>_Java_Regex_Expression - Fatal编程技术网

Java 需要正则表达式建议吗 ]*>

Java 需要正则表达式建议吗 ]*>,java,regex,expression,Java,Regex,Expression,我知道这个正则表达式用于检索src的值。有人能教我如何解释这个表达吗?学习不好。您好,请查看网络上的一个教程-例如。第3.1节和第3.2节“常用匹配符号”简要说明了每个符号及其替换内容以及元字符。把这里的内容分成小块,以便更容易理解。例如,在两个位置有\s,它是空白字符的元字符。反斜杠是Java中的转义字符,因此您使用\s而不是\s。在每一次之后,你都有一个。第3.3节解释了量词-这个特殊的量词表示它出现0次或更多次。因此\s表示“搜索出现0次或多次的空白字符”。对其他块也可以这样做 希望有帮助

我知道这个正则表达式用于检索src的值。有人能教我如何解释这个表达吗?学习不好。

您好,请查看网络上的一个教程-例如。第3.1节和第3.2节“常用匹配符号”简要说明了每个符号及其替换内容以及元字符。把这里的内容分成小块,以便更容易理解。例如,在两个位置有\s,它是空白字符的元字符。反斜杠是Java中的转义字符,因此您使用\s而不是\s。在每一次之后,你都有一个。第3.3节解释了量词-这个特殊的量词表示它出现0次或更多次。因此\s表示“搜索出现0次或多次的空白字符”。对其他块也可以这样做

希望有帮助。

解释:

  • 与字符串“src”完全匹配
  • \\s*
    匹配任意数量的空白字符
  • =
    与字符串“=”完全匹配
  • \\s*
    匹配任意数量的空白字符
  • ['\“]
    匹配两个引号。双引号将被转义,否则它将终止正则表达式的字符串
  • ([^'\“]+)
    对除引号以外的所有内容进行多次数学运算。内容被包装在括号中,因此它们被声明为组,可以稍后检索
  • ['\“]
    匹配两个引号。双引号将被转义,否则它将终止正则表达式的字符串
  • [^>]*
    匹配剩余的非
    “>”
    字符
  • 与标记的结束括号字符串
    “>”
    完全匹配
我不同意这个表达是废话,只是有点复杂

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

<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>
String str=“]*>”;
字符串文本=”;
Pattern=Pattern.compile(str);
Matcher Matcher=pattern.Matcher(文本);
if(matcher.matches())
{
int n=matcher.groupCount();

对于(int i=0;i)你所说的解释是什么意思?理解regexp中每个字符的意思,或者你想知道如何使用这个regexp来检索src属性值吗?谢谢,这真的很有帮助->因此([^'\“]+)是src的值,对吗?我可以知道如何引用([^'\“]+)我知道我们可以用1美元,2美元这样的东西来做,对吗?
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