Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Php 正则表达式模式匹配_Php_Regex_Preg Match - Fatal编程技术网

Php 正则表达式模式匹配

Php 正则表达式模式匹配,php,regex,preg-match,Php,Regex,Preg Match,我想从包含html内容的字符串中提取第一次出现(blah blah)之间的文本 使用HTML解析器解析HTML 使用惰性量词'/#=124;$&";。\w\s]+?您需要让正则表达式变得懒惰而不是贪婪,告诉它在之间匹配尽可能少的字符等等。我知道这并不能回答您的问题,我建议不要使用正则表达式解析html。为什么不尝试类似的方法并节省一些时间。知道dom解析器,但在赋值中必须使用正则表达式。学习正则表达式。感谢老兄!!这有助于…!!正则表达式新增感谢老兄!!这有助于…!!正则表达式新增 $patte

我想从包含html内容的字符串中提取第一次出现(
blah blah)之间的文本
  • 使用HTML解析器解析HTML

  • 使用惰性量词
    '/#=124;$&";。\w\s]+?您需要让正则表达式变得懒惰而不是贪婪,告诉它在
    之间匹配尽可能少的字符等等。我知道这并不能回答您的问题,我建议不要使用正则表达式解析html。为什么不尝试类似的方法并节省一些时间。知道dom解析器,但在赋值中必须使用正则表达式。学习正则表达式。感谢老兄!!这有助于…!!正则表达式新增感谢老兄!!这有助于…!!正则表达式新增
    
    $pattern='/<a[^(span)][\/\(\)-:@!%*>#=_|?$&";.\w\s]+<\/a> <span/um';
    
    <a href="#">asdasdasd</a> <span blah blah></span> blah blah <a>blah  </a> <span>blah
    
    <a href="#">asdasdasd</a> <span
    
    <a href="#">asdasdasd</a> <span blah blah></span> blah blah <a>blah  </a> <span
    
    $ptn = '/<a.+?<span/';
    $str = '<a href="#">asdasdasd</a> <span blah blah></span> blah blah <a>blah  </a> <span>blah';
    preg_match($ptn, $str, $matches);
    echo $matches[0];