2015-08-08 45 views
3

我为包含1到4个非零数字字符或1到4个字符串的字符串写入正则表达式4个非零数字字符和1个字母,但我坚持如何修复一个字母字符的长度。字符串正则表达式,它由1到4个非零数字字符或1到4个非零数字字符和1个字母组成

"(^[1-9]{1,4}$|^[[a-zA-Z][1-9]{1,4}]$)" 

我试过这种方式,但它不工作;它仅验证由1到4个非零数字字符组成的字符串。

+0

怎么样的字符顺序? 1234,123u,12u3,u123 - >全部可以接受,或者顺序很重要? – sinisake

+0

所有可接受的像1234,123u4,12u34,1u234,u1234,1243u是有效字符串 –

回答

2
^(?:\d{1,4}|(?=\d*[a-zA-Z]\d*$)[\da-zA-Z]{2,5})$ 

你需要一个lookahead这个看演示。

https://regex101.com/r/eX9gK2/2

+1

伟大的,我知道它并不那么微不足道,所以我不明白为什么这问题被投票结束。 :) – sinisake

+1

@nevermind nevermind:P – vks

+1

谢谢你的工作 –

0

通常,您最好的机会是使用在线工具来测试您的正则表达式,如http://www.regexr.com/

此外,你想达到什么可以做这样的:([a-zA-Z]?[1-9]{1,4})

说明:

  • [a-zA-Z]手段AZ字母字符
  • ?表示0或者前一组的1(什么在您的测试中缺失)
  • [1-9]{1,4}意味着1到4个数字字符,就像您提到的那样
+1

感谢您的回应,但仍然有一个问题是there.I意味着字母字符不必是第一个字符。它可以在字符串中的任何地方,但应该只来曾经或没有人喜欢“a1234”“1a222”,“12a22”,“123a2”,“1234a”,“1234”应该是有效的字符串 –

相关问题