REGEX:抓住一切,直到一个特定的词

时间:2008-09-29 00:14:40

标签: php html regex

ex:<a><strike>example data in here</strike></a>

我希望标签内的所有内容都到底

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

<a>标记中没有其他标记时,它会起作用,但如果有的话会怎样?

我想知道您是否可以告诉它只抓取[^</a>]而不是[^<]的所有内容。

使用/<a>(.*)<\/a>/执行该操作效果不佳。有时我会在<a>标记中获取所有内容,有时我会在该调用中包含大量行。

1 个答案:

答案 0 :(得分:78)

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

应该有效。的?使它变得懒惰,所以它在匹配</a>部分之前尽可能少地抓取。但使用。将意味着它匹配所有内容,直到它找到</a>。如果您希望能够跨行匹配,则可以使用以下preg_match

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

最后的“s”将正则表达式置于“单行”模式,这意味着。字符匹配所有字符,包括新行。见other useful modifiers