Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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

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 All - Fatal编程技术网

Php 如何在使用正则表达式获取元素之间的数据时仅获取文本?

Php 如何在使用正则表达式获取元素之间的数据时仅获取文本?,php,regex,preg-match-all,Php,Regex,Preg Match All,我正在从标记中提取和分解数据,采取以下步骤: <li><strong>2</strong> apples</li> <li><strong>5</strong> rotten oranges</li> <li><b>3</b> pears</li> <li><strong>4 and</strong><stron

我正在从
标记中提取和分解数据,采取以下步骤:

<li><strong>2</strong> apples</li>
<li><strong>5</strong> rotten oranges</li>
<li><b>3</b> pears</li>
<li><strong>4 and</strong><strong>5</strong> not working</li>
  • 2苹果
  • 5腐烂的橙子
  • 3个梨
  • 4和5不工作
  • 现在它正在获取第一个和最后一个
    标记之间的所有内容,但我不想返回匹配中的内部html标记

    返回的数组正在回响以下内容:
    4和5
    ,但我只希望
    4和5在数组中并在同一行中

    这是我提出的正则表达式:
    (.*)(?:)(.*)


    如果您可以递归地查看每一行的结果,那么使用惰性量词可以解决您的问题。您也不需要第二个捕获组

    <(?:strong|b)>(.*?)(?:<\/(?:strong|b)>)
    
    (.*)(:)
    

    请参见此处-

    使用解析器,而不是正则表达式<代码>(.*)
    可能更接近您想要的内容,但不可靠。@chris85已经在使用xpath,这只是为了测试一个较小的无关问题。遗憾的是,这将5和“4和”分开,我需要它是同一行的“4和5”,谢谢。为什么不把每个
    li
    拉出来,然后把每个
    strong
    /
    b
    拉进去,把每个
    li
    的内容连接在一起,如果有多个的话。是的,我会试试看。祝你好运。如果您有问题,请发回,并添加新代码。我将第二个捕获组用于其他目的。我在问题中提到我需要“4和5”在同一行(相同数组),谢谢你花时间回答。啊,很公平,应该再扫描一次。你可能没有用最简单的方法来解决这个问题,也许如果你包含了完整的用例,我们可以提供更好的见解。我知道,很抱歉,有时候我们只关注手头的问题,让帮助者更容易,而忽略了其他较小的细节有助于描绘更好的画面的事实。在第4场比赛中,第1组,我想把“4和5”放在同一组中,但里面没有强标签,只有文本