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

.net 具有特定长度的字母数字(unicode)的正则表达式,.net,asp.net,regex,.net,Asp.net,Regex,有效的数字或字母应至少包含一个数字或字母(长度为6到15个字符)。e、 十, 11111a 111a11 a11111 我在SO中发现了类似的帖子,但它们似乎不符合顺序…应该这样做:\w{6,15} 如果要匹配整个字符串:^\w{6,15}$这将匹配6到15个字符(字母或数字),但所有数字或字母除外: ^(\p{L}|\p{N}){6,15}(?<=\p{L}.*)(?<=\p{N}.*)$ ^(\p{L}|\p{N}{6,15}(?您需要一个前瞻性查询 您可以创建一个reg

有效的数字或字母应至少包含一个数字或字母(长度为6到15个字符)。e、 十,

11111a

111a11

a11111

我在SO中发现了类似的帖子,但它们似乎不符合顺序…

应该这样做:
\w{6,15}

如果要匹配整个字符串:
^\w{6,15}$

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

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

^(\p{L}|\p{N}{6,15}(?您需要一个前瞻性查询

您可以创建一个regexp令牌,该令牌将尝试查找匹配项,但不会“使用”输入字符串。您可以使用一个简单的第二个查询来验证字符串的长度

您可以将它们组合起来创建所需的查询

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

这个正则表达式只写在这个聊天框中,没有经过测试……所以发发慈悲吧:)

我不知道什么是“字符或字母”,但我猜你的意思是“a-Z”

看起来这样行得通:

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

^(?=.[a-zA-Z].\w{6,15}(?这与要求不匹配,应至少包含一个字符或字母为true..111111无效。da-zA-Z将仅匹配罗马字母a到Z。它将不匹配任何字符,如å或ö-有关详细信息,请参阅“绝对最小值每个软件开发人员绝对肯定地必须了解Unicode和字符集(没有借口!)”:ooups!对此表示抱歉..我指的是您可以使用的数字或字母\w(小写)而不是a-zA-Z。这也将匹配unicode单词字符。@yodaj007:请注意,
\w
也匹配下划线字符。我发现规范不太清楚。整个字符串应该是6-15个字符长,还是应该有6-15个字母的序列。字符串中是否允许任何非字母和非数字字符字符串?整个字符串的长度应该在6到15个字符之间,不允许使用任何非字母或非数字。很抱歉,我的母语是希腊语…@strakastroukas-我很感激英语不是你的第一语言,但是你能为我们添加一些测试用例吗?包括那些不应该被接受的测试用例对于我们的评论,“111111”是无效的,但“εληνικά”是-是“ά”你的号码吗?@Zhaph-“εληνκά1”"也不验证。第一个是输入错误。很抱歉,是的,很好,做得很好-它也适用于unicode,它不会出现在您的测试用例中:嗯,它显式地查找0-9范围内的unicode字母和阿拉伯数字-哪些是字符串中的数字?@strakastroukas-有趣,我不确定如何查找为了配合我的想法。@Zhaph@TheSteve编辑:这应该不会在验证中失败,但它确实是“Ελλληνικά1”看起来可能是这样的:我同意。这看起来比我的好。我刚刚在这里读到了关于\p符号的内容:看起来这是实现这一点的诀窍。
^(?=.*[a-zA-Z].*)\w{6,15}(?<=.*\d.*)$