使用 PHP's preg_match
,我尝试将元素符号匹配为
K+ => array( [0] => K+, [1] => K, [2] => +)
Cr7+ => array( [0] => Cr7+, [1] => Cr, [2] => 7+)
O2- => array( [0] => O2-, [1] => O, [2] => 2-)
我想出了一个正则表达式
preg_match('/^[A-Za-z](\d[+|-])/', $str, $match);
但它不匹配K+
。我如何向数字添加 OR 条件?
您可以匹配可选小写字母后面的大写字母,指示以数字或[-+]
符号或两者结尾的元素名称,使用:
([A-Z][a-z]*)(\d*[-+]?)
PHP 代码(请参阅此处的演示):
preg_match_all('~([A-Z][a-z]*)(\d*[-+]?)~', $str, $matches);
提供的输入的输出:
Array
(
[0] => Array
(
[0] => K+
[1] => K
[2] => +
)
[1] => Array
(
[0] => Cr7+
[1] => Cr
[2] => 7+
)
[2] => Array
(
[0] => O2-
[1] => O
[2] => 2-
)
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句