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

chi*_*ken 31 html php regex

例如: <a><strike>example data in here</strike></a>

我想要一个标签内的所有东西,直到最后

/<a>([^<]*)<\/a>/
Run Code Online (Sandbox Code Playgroud)

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

我想知道你是否可以告诉它抓住所有东西,[^</a>][^<]不仅仅是.

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

Kib*_*bee 78

/<a>(.*?)<\/a>/
Run Code Online (Sandbox Code Playgroud)

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

/<a>(.*?)<\/a>/s
Run Code Online (Sandbox Code Playgroud)

最后的"s"将正则表达式置于"单行"模式,这意味着.字符匹配所有字符,包括新行.请参阅其他有用的修饰符

  • 在什么搞砸的HTML版本中,<a>出现在另一个<a>标签中? (7认同)
  • @Kibbee:你发现乱七八糟的版本散落在万维网的各个地方;-) (2认同)