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

时间:2015-10-29 17:21:50

标签: regex regex-lookarounds

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

  1. 应该使用1到4个alpha charcters。(但应该以alpha开头)
  2. 从第5个位置到等等应该取数字。(从5开始不应该接受字母表)
  3. 在alpha的1-4个字符之间,它不应该允许数字。 4.即使输入前4个字符,它也应该接受。(4个字符应该是alpha.ex:“asdf”) ^ [A-ZA-Z] [0-9] $
  4. 我有很多东西,搜索了很多网站。我找不到它。请帮助我。 提前谢谢。

4 个答案:

答案 0 :(得分:1)

从我的头顶回答:

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

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

  1. ^ =字符串开头
  2. [a-zA-Z] = az(不区分大小写)
  3. {1,4} = 1至4次
  4. [0-9]+ = onemore个数字
  5. $ =字符串结束
  6. 因为每种情况都不同,我建议使用在线正则表达式测试器来测试某些字符串。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

试试这个:

^[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个或更多个数字。

答案 3 :(得分:0)

您也可以这样写:

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

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

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