我试图剥离按类型分组的字符串(仅ALPHA或DIGIT),没有任何其他字符.
我正在使用PHP,并希望使用REGEX.
我需要将像“ES-3810 / 24MX”这样的输入字符串转换为类似[ES] [3810] [24] [MX]的数组,
和类似“CISCO1538M”的输入字符串到[CISCO] [1538] [M]这样的数组.
输入文件序列可以是无差别的DIGITS或ALPHA.
分隔符可以是非ALPHA和非DIGIT字符,以及DIGIT序列与APLHA序列之间的变化,反之亦然.
抱歉,我的英语很差……希望我的解释看起来很清楚.
谢谢你的大力帮助.
最好的祝福.
解决方法:
匹配正则表达式的所有出现的命令是preg_match_all(),它输出多维结果数组.正则表达式非常简单…任何数字([0-9])一次或多次()或(|)任何字母([A-z])一次或多次().注意大写字母A和小写字母z包括所有大写和小写字母.
为方便起见,textarea和php标签包含在内,因此您可以放入php文件并查看结果.
foreach( array(
"ES-3810/24MX",
"CISCO1538M",
"123ABC-ThatsHowEasy"
) as $string ){
// get all matches into an array
preg_match_all("/[0-9]+|[[:upper:][:lower:]]+/",$string,$matches);
// it is the 0th match that you are interested in...
print_r( $matches[0] );
}
?>
textarea中的哪些输出:
Array
(
[0] => ES
[1] => 3810
[2] => 24
[3] => MX
)
Array
(
[0] => CISCO
[1] => 1538
[2] => M
)
Array
(
[0] => 123
[1] => ABC
[2] => ThatsHowEasy
)
标签:php,regex,split,string
来源: https://codeday.me/bug/20190626/1294270.html