1

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

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

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

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

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

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

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

4

2 回答 2

5

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

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

我的建议是阅读一些关于正则表达式的内容,例如教程

于 2012-07-28T12:12:35.160 回答
2

最简单的正则表达式是:

/\A[a-z\d]*\Z/i
于 2012-07-28T13:01:59.217 回答