Php 用于验证的正则表达式模式,检查所有字符串是否为整数并拆分为单个整数
我多次尝试制作一个模式,可以验证给定的字符串是否为自然数,并将其拆分为单个数 …对正则表达式缺乏了解,我能想象的最接近的事情是Php 用于验证的正则表达式模式,检查所有字符串是否为整数并拆分为单个整数,php,regex,pcre,Php,Regex,Pcre,我多次尝试制作一个模式,可以验证给定的字符串是否为自然数,并将其拆分为单个数 …对正则表达式缺乏了解,我能想象的最接近的事情是 ^([1-9])([0-9])*$或^([1-9])([0-9])([0-9])*$诸如此类 它只生成第一个、最后一个和第二个或最后一个分割数 我想知道我需要知道什么来解决这个问题。。谢谢您可以使用两步解决方案,如 if (preg_match('~\A\d+\z~', $s)) { // if a string is all digits print_r(st
^([1-9])([0-9])*$
或^([1-9])([0-9])([0-9])*$
诸如此类
它只生成第一个、最后一个和第二个或最后一个分割数
我想知道我需要知道什么来解决这个问题。。谢谢您可以使用两步解决方案,如
if (preg_match('~\A\d+\z~', $s)) { // if a string is all digits
print_r(str_split($s)); // Split it into chars
}
见a
一步正则表达式解决方案:
(?:\G(?!\A)|\A(?=\d+\z))\d
见
详细信息
-上一个匹配的结尾((?:\G(?!\A)|\A(?=\d+\z))
)或(\G(?!\A)
)字符串(|
)的开头,该字符串后面有一个或多个数字(^
)(?=\d+\z)
-一个数字\d
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 0
)
谢谢你,威克托。我将把
(?:\G(?!\A)|\A(?=\d+\z))\d
放入regex101站点并检查它。如果您需要更多详细信息,请告诉我。答案中已经有了。@WiktorStribiżew更具体地针对OP的要求(无前导零)@mickmackusa对。无论如何,该解决方案展示了一种验证和提取特定模式的方法。
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 0
)