匹配多个结果单行php正则表达式

匹配多个结果单行php正则表达式,php,regex,Php,Regex,我想在一行字符串上匹配多个结果,但我只能得到我期望的结果的最后一次迭代 例如,我有一个字符串: 我想得到: 测试1 测试2 测试3 结果是,我只得到了“test3” 我使用了这个正则表达式(),但我不知道我做错了什么。试试这样: (?<=(<a href="#">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>)) or (?<=(">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>)) or (?<

我想在一行字符串上匹配多个结果,但我只能得到我期望的结果的最后一次迭代

例如,我有一个字符串:
    • 我想得到:

      测试1
      测试2
      测试3

      结果是,我只得到了“test3”

      我使用了这个正则表达式(
    • ),但我不知道我做错了什么。

      试试这样:

      (?<=(<a href="#">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>))
      or
      (?<=(">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>))
      or
      (?<=(<a href="#">))(.)+?(?=(<\/a>))
      
      (?像这样尝试:

      (?<=(<a href="#">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>))
      or
      (?<=(">))([\s\S]| |w\[0-9]| )+?(?=(<\/a>))
      or
      (?<=(<a href="#">))(.)+?(?=(<\/a>))
      
      (?改用解析器:

      preg_match_all("\#\"\>[a-z]\w+\<\/\a\>,
          $out, PREG_PATTERN_ORDER)
      
      
      
      这将设置
      DOM
      ,并使用
      xpath
      表达式来获取元素。

      请改用解析器:

      preg_match_all("\#\"\>[a-z]\w+\<\/\a\>,
          $out, PREG_PATTERN_ORDER)
      
      
      
      这将设置
      DOM
      ,并使用
      xpath
      表达式来获取元素。

      preg\u match\u all(\\\\”\>[a-z]\w+\,
      $out,预模式(订单)
      
      这是正则表达式模式…试试这个 (“\\”>[a-z]\w+\)

      这将仅提取所有文本字符串….

      preg\u match\u all(“\\\\”\>[a-z]\w+\,
      $out,预模式(订单)
      
      这是正则表达式模式…试试这个 (“\\”>[a-z]\w+\)


      这将仅提取所有文本字符串。…

      您可以使用preg\u replace

      $test='
        • '; echo preg_替换('/]*>/',''$test);
      您可以使用preg\u replace

      $test='
        • '; echo preg_替换('/]*>/',''$test);
      preg\u match\u all
      好吧,模式是错误的。不是每个
    • 都包含在
      中。为了上下文/简单起见,您必须使用两个regexp。如果不使用,请使用DOM遍历前端:
      qphtml($html,“ul-li”)
      @mario:我想这只是问题描述中的一个错误。
      preg\u match\u all
      好吧,模式是错误的。不是每个
    • 都包含在
      中。为了上下文/简单起见,您必须使用两个regexp。而不使用DOM遍历前端:
      qphtml($html,“ul li”)
      @mario:我想这只是问题描述中的一个错误。
           $test = '<ul><li><a href="#">test1</a></li><li><a href="#">test2</a></li><a href="#">test3</a></li></ul>';
              echo preg_replace('/<[^>]*>/', '  ', $test);