![](/img/trans.png)
[英]PHP replacing all occurances of certain string pattern in HTML formatted text
[英]PHP regexp - how to extract all occurances of a pattern
我有一个包含多个WIKI类型标签的字符串。 例如[[TAG:4567]]
。 我需要从字符串中识别/提取所有标签,以便以后可以执行替换。
例如,对于此字符串:
this is a test [[TITLE]] of more test [[LINK:27654]]
我想要一个数组:
0: [[TITLE]]
1: [[LINK:27654]]
我以为PHP preg_match可能有用,但是它在regexp匹配之间返回了一堆额外的字符。 但是我认为它只适用于主题字符串中的一个匹配项。 这是我尝试的:
$subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
preg_match( '/(?<=\[\[)(.*)(?=\]\])/', $subject, $matches );
print_r($matches);
但这给了我:
Array (
[0] => TITLE]] of more test [[LINK:27654
[1] => TITLE]] of more test [[LINK:27654
)
这不是我所需要的。 是否有提取标签的简单方法? 我真的很想避免遍历字符串并手动提取。
看起来更容易(也是正确的)正则表达式来解决这个问题是
/\[\[(.*?)\]\]/
<?php
ini_set('display_errors', 1);
$subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
preg_match_all('/\[\[.*?\]\]/', $subject, $matches );
print_r($matches);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.