我试图找出如何通过正则表达式获取-tagg中的单词/单词。我的内容是:
<li id="menu-item-90" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-90"><a href="http://example.com/">Start</a></li>
<li id="menu-item-484" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-484"><a href="http://example.com/test/">Test</a></li>
<li id="menu-item-375" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-375"><a href="http://example.com/test2/">test number two</a></li>
<li id="menu-item-171" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-171"><a href="http://example.com/test3/">Test 3</a></li>
所以上面的代码我只想得到以下内容:
如何使用preg_split和格式化链接上的正则表达式实现这一目标?我尝试了以下但是我的正则表达能力不是第一。只输出一个空数组。
$tag = 'a';
$topMenuValues = preg_split('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>}', $topMenuValues);
答案 0 :(得分:-1)
您正在整个<a..>...</a>
标记中拆分,这意味着它与整个标记匹配。问题出在中间的(.*?)
,你应该将它们与你的分隔符正则表达式匹配。尝试改为
'{(<'.$tag.'[^>]*>)|(</'.$tag.'>)}'
话虽如此,这只适用于上述html的特定实例。你应该真的使用HTML解析器