正则表达式:抓住所有内容,直到一个特定的单词

2022-08-30 14:10:44

前任:<a><strike>example data in here</strike></a>

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

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

当标签中没有其他标签时,它可以工作,但如果有的话呢?<a>

我想知道你是否可以告诉它抓住一切,而不仅仅是。[^</a>][^<]

这样做并不奏效。有时我会在标签中获得所有内容,有时我会在该调用中包含大量行。/<a>(.*)<\/a>/<a>


答案 1
/<a>(.*?)<\/a>/

应该工作。这?使它变得懒惰,因此在匹配零件之前,它会尽可能少地抓取。但使用 .将意味着它匹配所有内容,直到找到 .如果希望能够跨行匹配,则可以使用以下 if 和 preg_match</a></a>

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

末尾的“s”将正则表达式置于“单行”模式,这意味着 .字符匹配所有字符,包括新行。查看其他有用的修饰符


答案 2

推荐