正则表达式 - 任意数量的数字 + 数字或 [a-z]

标签 regex

我正在尝试编写一个正则表达式来检查字符串是否以多个数字(至少一个)开头,然后立即以单个字母或数字结尾。

所以:

  • 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]?$

参见regex demo

详细信息

  • ^ - 字符串开头
  • [0-9]+ - 任意 1 个或多个数字
  • [a-z0-9]? - 1 或 0 个小写 ASCII 字母或数字
  • $ - 字符串结尾。

关于正则表达式 - 任意数量的数字 + 数字或 [a-z],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447133/

相关文章:

regex - 如何编写 C# 正则表达式模式来匹配基本的 printf 格式字符串,如 "%5.2f"?

python - 正则表达式到 FindAll 字符串链,直到带有 python 的点

正则表达式多次匹配序列

regex - Notepad++ 用获取一些文本替换文本

c# - 正则表达式匹配除特定子字符串之外的字母数字

Ruby 与扫描字符串的长度不一致的结果

java - 如何使用 java 正则表达式删除以某个字符串开头的所有行?

c# - 获取标签之间的文本

regex - awk 正则表达式打印每第 N 次出现

c# - 正则表达式匹配后如何选择n个字符