如何根据字母字符数和/或数字数拆分字符串,使它们成为单独的字符串?
希望这是有道理的。谢谢你的帮助 (:
例如:用户输入:
- 亨利·史密斯 ID:123456
我想将用户输入排序为单独的字符串,结果为:
$name = 'Henry, Smith';
$ID = '123456';
您可以使用正则表达式仅匹配数字和除数字之外的所有内容。
$number = preg_replace("/[^0-9]/", '', $str);
$name = preg_replace("/[0-9]/", '', $str);
请注意,对于name
,这Henry, Smith ID:
将从您的问题示例中返回。这只是取出数字......它不知道“ID:”不是人名的一部分。
插入符号 ( ^
) 的解释:
在括号内,它意味着匹配不在括号内的所有内容。所以[^0-9]
匹配除数字之外的所有内容。在此示例中,它将用空白(第二个参数)替换不是数字的所有内容。对于$name
,我们做相反的事情。我们将所有 IS 数字替换为空白,以获取非数字字符。
有关正则表达式的更多信息,请参见此处。