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”放在同一组中,但里面没有强标签,只有文本