2012-07-28 37 views
1

我有2个红宝石regexps。第一个正则表达式是为字母和数字一样东西:正则表达式红宝石有效的字母数字和数字

letter_digits = /^([0-9]*[a-zA-Z][a-zA-Z0-9]*)$/ 

有了,如果我只写数字564521不匹配此正则表达式!

不过,我有这样的正则表达式仅数字:

only_digits = /^([0-9])*$/ 

但随着这个表达式,如果我写s45xo不匹配!

我只需要1的正则表达式都字母/数字数字有效

回答

5

尝试:letter_digits = /^[0-9a-zA-Z]*$/

您的第一个正则表达式/^([0-9]*[a-zA-Z][a-zA-Z0-9]*)$/说,应该有数字(0或以上),则信(1),然后数字或字母(0或更多)。

我的建议是阅读一些有关正则表达式,例如tutorial

+0

非常感谢您!它确实工作正常! – hyperrjas 2012-07-28 12:25:47

+0

不,因为“这不应该\ nmatch”=〜/^[0-9a-zA-Z] * $/ – pguardiario 2012-07-28 13:02:29

+0

该字符串不应与正则表达式匹配。 – pguardiario 2012-07-28 14:09:21

2

最简单的正则表达式是:

/\A[a-z\d]*\Z/i