有效的应按任何顺序包含至少一个数字或字母(长度为6到15个字符)。 e.x。
11111a
111a11
a11111
我在SO中发现了类似的帖子,但它们似乎无序......
答案 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} $