我想找到所有字符串看起来像[!plugin=tesplugin arg=dfd arg=2!]
并将它们放在数组中。
重要功能:字符串可以包含arg=
或非(在某些情况下)。当然可以有arg
个任意数量的[!plugin=myname!]
个。所以字符串看起来像:
[!plugin=whatever1 arg=22!]
或[!plugin=gal-one arg=1 arg=text arg=tx99!]
甚至$str
。我需要将它们全部放在$inp = "[!plugin=tesplugin arg=dfd!] sometxt [!plugin=second arg=1 arg=2!] 1sd";
preg_match_all('/\[!plugin=[a-z0-9 -_=]*!]/i', $inp, $str);
数组项
这就是我做的......
$str[0][0]
但[!plugin=tesplugin arg=dfd!] sometxt [!plugin=second arg=1 arg=2!]
包含:
{{1}}
而不是将每个表达式放在一个新的数组项中.. 我认为我在正则表达式中的问题..但无法找到一个。 Plz帮助...
答案 0 :(得分:1)
最后]
需要进行转义,并且字符类中的-
需要位于开头,结尾或转义处。因为它是空格和下划线之间的一系列ascii字符。
\[!plugin=[a-z0-9 \-_=]*!\]
Regex101演示:https://regex101.com/r/zV4bO2/1