正则表达式允许在字符串开头有 1 到 4 个字母,然后是任意数量的数字

regex to allow 1 to 4 alphabet at starting of string and then followed by any number of digits

我正在尝试验证一个可以通过以下方式接受输入的字段:

  1. 应使用 1 到 4 个字母字符。(但应以字母开头)
  2. 从第 5 位到第 5 位应采用数字。(从第 5 位开始的任何位置都不应采用字母)
  3. 在字母的 1-4 个字符之间,不应允许数字。 4.even 如果输入前 4 个字符,它应该接受。(这 4 个字符应该是 alpha.ex:"asdf") ^[a-zA-Z][0-9]$

我有很多东西找了很多sites.i没找到it.please帮助我。 提前谢谢你。

^[a-zA-Z]{1,4}\d*
  • [a-zA-Z] 用于字母字符
  • `\d'是数字的缩写
  • {1,4} 指定 1 到 4 个字符
  • *指定任意位数(包括none)

试试这个:

^[A-Za-z]{1,4}\d*$

https://regex101.com/r/yH6pR3/1

它只允许 1-4 个字母字符,然后只允许数字。数字是可选的。您可以通过将其设为 \d+ 来更改它。

我想知道你所说的仅从第 5 位开始的数字是什么意思。如果字符串开头有三个或更少的 alpha 怎么办?

更新:

^(?:[A-Za-z]{1,4}|[A-Za-z]{4}\d+)$

https://regex101.com/r/qQ8nR2/1

首先它会尝试匹配 1-4 个字符。如果失败,则它会尝试匹配 4 个字符后跟 1 个或多个数字。

对于我脑海中的答案:

^[a-zA-Z]{1,4}[0-9]+$

将匹配具有以下分解的字符串:

  1. ^ = 字符串开始
  2. [a-zA-Z] = az(不区分大小写)
  3. {1,4} = 1到4次
  4. [0-9]+ = onemore 数字
  5. $ = 字符串结束

因为每个情况都不一样,我建议使用在线正则表达式测试器来测试某些字符串。

也可以这样写:

^\p{L}{1,4}\d+$

\p{L}{1,4} 匹配任意字母 1 到 4 次

\d+ 匹配任意数字一次或多次