具有特定长度的字母数字(unicode)的正则表达式

时间:2009-09-10 18:20:55

标签: .net asp.net regex

有效的应按任何顺序包含至少一个数字或字母(长度为6到15个字符)。 e.x。

11111a

111a11

a11111

我在SO中发现了类似的帖子,但它们似乎无序......

4 个答案:

答案 0 :(得分:3)

除了所有数字或所有字母外,这将匹配6到15个字符(字母或数字):

^(\p{L}|\p{N}){6,15}(?<=\p{L}.*)(?<=\p{N}.*)$

aaaaa1aaaa 匹配

1111111a11 匹配

aaaaaaaaaa 不符合

1111111111 不匹配

答案 1 :(得分:0)

您需要提前查询该查询。

您可以创建一个试图找到匹配但正在“消耗”输入字符串的正则表达式令牌。您可以使用简单的第二个查询来跟踪该字符串,该查询将验证字符串的长度。

您可以将这些组合起来创建您想要的查询。

正则表达式引擎的.Net版本的语法如下:

这个正则表达式只写在这个聊天框中,没有经过测试......所以请怜悯:))

我不确定是什么“字符或字母,但我会认为你的意思是”a-Z“

(?=。* [A-ZA-Z])。{6,15}

答案 2 :(得分:0)

看起来很有效:

^(?=.*[a-zA-Z].*)\w{6,15}(?<=.*\d.*)$

这是测试用例:

http://regexhero.net/tester/?id=83761a1e-f6ae-4660-a91f-9cdc4d69c7b3

基本上我的想法是首先使用积极的先行,以确保至少包含一个字母。然后我使用\ w {5,16}作为确保我匹配正确数量的字符(并且它们是字母数字)的简单方法。然后在最后我使用正向lookbehind确保字符串包含至少一个数字。

答案 3 :(得分:-1)

应该这样做:\ w {6,15} 如果你想匹配整个字符串:^ \ w {6,15} $