REGEX:抓取所有内容,直到指定单词为止

时间:2020-03-06 14:51:20  来源:igfitidea点击:

例如:<a> <strike>此处的示例数据</ strike> </a>

我想要标签内的所有内容,直到最后

/<a>([^<]*)<\/a>/

当<a>标签中没有其他标签时,它可以工作,但是如果有,该怎么办?

我想知道是否可以告诉它将所有内容都抓取到[[^ </a>],而不是仅抓取[[^ &lt;]

/ &lt;a>(。*)&lt;\ / a> /不能很好地工作。有时我将所有内容都包含在&lt;a>标记中,而有时我会在该调用中包含很多行。

解决方案

/<a>(.*?)<\/a>/

应该管用。这 ?使其变得懒惰,因此在匹配&lt;/a>部分之前,它尽可能少地抓取。但使用。表示它将匹配所有内容,直到找到" </a>"为止。如果我们希望能够跨行匹配,那么如果使用preg_match,则可以使用以下内容

/<a>(.*?)<\/a>/s

最后的" s"将正则表达式置于"单行"模式,即。字符匹配所有字符,包括换行符。查看其他有用的修饰符