正则表达式ruby对字母数字和数字有效

时间:2012-07-28 12:09:24

标签: ruby-on-rails ruby regex

我在ruby中有2个正则表达式。第一个正则表达式用于字母和数字,如:

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

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

但是我的这个正则表达式只有数字:

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

但如果我写这个正则表达式s45xo不匹配!

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

2 个答案:

答案 0 :(得分:5)

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

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

我的建议是阅读有关regexp的内容,例如tutorial

答案 1 :(得分:2)

最简单的正则表达式是:

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