如果我有这样的字符串:
$string = "number: 20 (10 30 10 zzz) 40 60";
如何匹配括号外的所有数字?
我想只获得
20,40,60
答案 0 :(得分:1)
以下是preg_split()
方法:
输入:
$string = "number: 20 (10 30 10 zzz) 40 60";
单行(Pattern Demo):
var_export(preg_split('/ |number: |\([^)]*\)/',$string,null,PREG_SPLIT_NO_EMPTY));
输出:
array (
0 => '20',
1 => '40',
2 => '60',
)
此模式将爆炸:
number:
编辑:
此模式也适用于preg_split()
:/[ a-z:]+|\([^)]*\)/i
速度稍快。
...
chris85对preg_match()
的评论模式是正确的。我通过颠倒替代方案对其进行了优化:\d+|\([^)]+\)(*SKIP)(*FAIL)