我想使用正则表达式来查找两个标签之间的内容,如下所示:
<br />@ This is the content.</li>
到目前为止,我一直在使用:
<br />@(.*?)</li>
内容有时包含<li>
标记,这不是我想要查找的内容。所以现在我想修改我的搜索,例如不包含match <br />@(.*?)</li>
的{{1}}。
然后我尝试:<li> tag
,但在搜索中仍然包含<br />@([^<li>].*?)</li>
。
答案 0 :(得分:5)
此表达式将:
<br />
开头并以下一个</li>
<li>
<br\s*\/>(@(?:(?!<li>).)*?)<\/li>
示例文字
直播示例:http://www.rubular.com/r/CIledJX54O
注意第一行的条件不好
<br />@ Don't <li>find me.</li>
<br />@ This is the content.</li>
<br />@ more desired content.</li>
捕获论坛
[0] => Array
(
[0] => <br />@ This is the content.</li>
[1] => <br />@ more desired content.</li>
)
[1] => Array
(
[0] => @ This is the content.
[1] => @ more desired content.
)
答案 1 :(得分:0)
为什么这个正则表达式不起作用:
#<a[^>]+href\s*=\s*(["\'])(.*?)\1[^>]*>((?:(?!</a).)*?)Domain#msi
我正在尝试查找链接文本中包含“Domain”字符串的所有链接。它将匹配所需的代码以及包含“</a
”的代码部分。
例如,它将匹配:
<a href="/new-domains">New Domain
但也
<a href="/domains/url-email-forwarding">URL & Email Forwarding</a></ul></div><!--/.navigation--></div></div></li><li><a href="/hosting">Hosting</a><div><div><div class="navigation"><h1>Premium Domain
当我将“域名”替换为“</a
”时,它将正确匹配所有链接。但为什么它不适用于“域名”?!
总神秘......