正则表达式出错

时间:2016-03-01 01:48:50

标签: php regex

我想找到所有字符串看起来像[!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帮助...

1 个答案:

答案 0 :(得分:1)

最后]需要进行转义,并且字符类中的-需要位于开头,结尾或转义处。因为它是空格和下划线之间的一系列ascii字符。

\[!plugin=[a-z0-9 \-_=]*!\]

Regex101演示:https://regex101.com/r/zV4bO2/1