我正在尝试编写一个正则表达式来检查字符串是否以多个数字(至少一个)开头,然后立即以单个字母或数字结尾。
所以:
29c
没问题29
没问题2425315651252fsaw
失败24241jl.421c
失败c
失败
到目前为止,我的正则表达式是 (^\d+)([a-z]{1}|\d)
,它传递 29
, 20c
,但也传递像 29cdsd
这样的东西。
我做错了什么?
最佳答案
您的(^\d+)([a-z]{1}|\d)
通过 29cdsd
因为它匹配字符串开头的 1 个或多个数字,后跟 1 个字母或 1 个数字,并且允许后面的任何内容。
使用
^[0-9]+[a-z0-9]?$
详细信息
^
- 字符串开头[0-9]+
- 任意 1 个或多个数字[a-z0-9]?
- 1 或 0 个小写 ASCII 字母或数字$
- 字符串结尾。
关于正则表达式 - 任意数量的数字 + 数字或 [a-z],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447133/