将单词分为两部分:字母和数字

时间:2014-04-15 17:17:22

标签: php regex

有字符串:

$string1 = "text3256";
$string2 = "23PT";

我想以某种方式检查这个词是否属于模式" NumberText"或" TextNumber"为了将单词分成两部分:a" Number"和"文字"

在上面的例子中 - 单词应分为以下几个部分:

"text3256" -> "text" and "3256"
"23PT" -> "23" and "PT"

是否可以创建此类正则表达式模式? (" text32text"或" 44fd675"等词不得分开)..

我当然可以使用"每个字符迭代创建一个硬编码解决方案"接近并检查下一个字符是字母还是数字......这是一个硬核,所以,我想知道是否有人可以帮助我提供更好,更简单的解决方案?

2 个答案:

答案 0 :(得分:1)

您可以使用:

'/^(?:(?:([a-z]+)(\d+))|(?:(\d+)([a-z]+)))$/i'

答案 1 :(得分:1)

我更喜欢使用边界:

/\b((\d+)([a-z]+)|([a-z]+)(\d+))\b/i

示例:http://codepad.viper-7.com/8muVjE