标签: php regex
如何检查字符串中可变数量的元素?
[keyword1|keyword2|keyword3] [keyword1|keyword2]
...或超过三个关键字。这只适用于三个要素:
preg_match("/^\[(.*)\|(.*)\|(.*)\]$/",$string, $matches)
编辑:如何在变量中获取捕获的关键字?即:
matches[1] = keyword1 matches[2] = keyword2 matches[3] = keyword3
答案 0 :(得分:2)
您可以使用:
(?:^\[(?=[^][|]*(?:\|[^][|]*)*\])|(?!^)\G)([^][|]*)(?:[]|])
DEMO
详细解释了这种技术 HERE
HERE
答案 1 :(得分:1)
使用此功能,3个及更多。
^\[[^|\n]*(?:\|[^|\n]*){2,}\]$
超过3,
^\[[^|\n]*(?:\|[^|\n]*){3,}]$
你可以通过\G锚,
\G
(?:^\[|\G)\|?([^\n|\]]+)(?=[\]|])
使用\G锚点进行连续字符串匹配。