正则表达式匹配字符或数字

时间:2014-03-21 18:24:25

标签: javascript regex

我想得到一个由类型(数字或字符)

分隔的字符串部分

简化初始情况:

var content = 'foo123bar456';

期望的结果:

result = ['foo', 123, 'bar', 456];

这是我到目前为止匹配第一个" foo"

^(([a-z])|([0-9]))+

我认为这会匹配字符[az] + OR数字[0-9] +(在这种情况下匹配' foo'但不幸的是它允许两者(字符和数字)同一时间。

如果它只匹配相同类型的字符,我可以添加" {1,}"我的正则表达式,以匹配模式的所有出现,世界会好一点。

2 个答案:

答案 0 :(得分:3)

正确的正则表达式将是:

([a-zA-Z]+|[0-9]+)

正则表达式的解释是:

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  (                        group and capture to \1:
--------------------------------------------------------------------------------
    [a-zA-Z]+                any character of: 'a' to 'z', 'A' to 'Z'
                             (1 or more times (matching the most
                             amount possible))
--------------------------------------------------------------------------------
   |                        OR
--------------------------------------------------------------------------------
    [0-9]+                   any character of: '0' to '9' (1 or more
                             times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of \1

答案 1 :(得分:0)

使用g修饰符以及全局匹配

[a-zA-Z]+|[0-9]+/g