正则表达式检查字符串只包含字母和数字,但不仅包括数字

ond*_*aco 6 php regex

我需要一个正则表达式的帮助,它检查字符串只包含字母和数字,但不仅仅是数字

有效

* letters
* 1wret
* 0123chars
* chars0123
* cha2rs
Run Code Online (Sandbox Code Playgroud)

无效

* 1324
* xcvxxc%$#
* xcv123xxc%$#
* _012chars
* _test
Run Code Online (Sandbox Code Playgroud)

pol*_*nts 33

以下是我们将要使用的正则表达式的组件:

  • ^并且$分别是字符串锚点的开头和结尾
  • \d 匹配一个数字
  • [a-zA-Z] 匹配一封信
  • [a-zA-Z\d] 匹配字母或数字
  • * 是"零或多"重复

有了这些,我们现在可以构成我们需要的正则表达式(参见rubular.com):

^\d*[a-zA-Z][a-zA-Z\d]*$
Run Code Online (Sandbox Code Playgroud)

这是对模式的解释:

from the beginning...  till the end
|                      |
^\d*[a-zA-Z][a-zA-Z\d]*$
 \_/\______/\_________/
Run Code Online (Sandbox Code Playgroud)

这三部分是:

  • 也许一些数字作为前缀......
  • 但绝对是一封信!
  • 然后可能会有一些数字和字母作为后缀

参考


Gum*_*mbo 6

这应该这样做:

^[0-9]*[a-zA-Z]+[a-zA-Z0-9]*$
Run Code Online (Sandbox Code Playgroud)

这需要至少一个字符[a-zA-Z].