2
我试图使用REGEX在保持分隔符的同时拆分一个字符串。我希望通过锚标签拆分非常大且不可预知的字符串。我使用HTML tidy来确保标签是正确的,但是任何可能在我希望匹配的锚标签之前或之后出现。PHP正则表达式匹配的定位标记
*PRECEDING-ANYTHING*<a *ANYTHING*>*ANYTHING*</a>*PROCEDING-ANYTHING*
*PRECEDING-ANYTHING*<a *ANYTHING*>*ANYTHING*</a>*PROCEDING-ANYTHING*
其中href网址可以是任何东西,其他属性(如'target')也可以是任何东西。
我做了很多搜索和测试,或者我做错了什么,或者堆栈溢出的其他答案不适用。
使用
$parts= preg_split($pattern, $textWithAnchors, -1, PREG_SPLIT_DELIM_CAPTURE)
我希望有$部分是类似于以下。
parts[0] is equal to *PRECEDING-ANYTHING*
parts[1] is equal to <a *ANYTHING*>*ANYTHING*</a>
and so forth
正则表达式捕获整个锚标记和其中的一切都很重要。
我非常感谢任何帮助,我特别要求一个能够在PHP中完成此操作的正则表达式。我知道有HTML解析器,但在这种情况下使用REGEX是最佳选择。虽然这可能是一种学习体验。
请看'DOMDocument'类,它更实用,并支持加载部分代码。你可以轻松地加载你的一行,并让它找到所有'a'-tags。 –
查看这里的第一个答案:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
显示你试过的一些正则表达式。 –