Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一行正则表达式将6个字母数字与2个字母精确匹配_C#_Regex - Fatal编程技术网

C# 一行正则表达式将6个字母数字与2个字母精确匹配

C# 一行正则表达式将6个字母数字与2个字母精确匹配,c#,regex,C#,Regex,我正在试图找出如何使用积极的前瞻性来让它工作,但没有成功。我正在玩类似的游戏: ^(?=.*[a-zA-Z0-9])(\w{6})$ 唯一的要求是 1.字符串为6个字符 2.有2个字母和4个数字 因此,积极的匹配应该是: A0123A AA0123 0123AA A01A23您的^(?=.[a-zA-Z0-9])(\w6)$匹配至少有1个ASCII字母或数字的字符串(由于(?=.[a-zA-Z0-9])),并且只有1个单词字符后跟6符号。因此,它将匹配字符串,如16或\u6或a6。因此,它不会

我正在试图找出如何使用积极的前瞻性来让它工作,但没有成功。我正在玩类似的游戏:

^(?=.*[a-zA-Z0-9])(\w{6})$
唯一的要求是
1.字符串为6个字符
2.有2个字母和4个数字

因此,积极的匹配应该是:

A0123A
AA0123
0123AA
A01A23

您的
^(?=.[a-zA-Z0-9])(\w6)$
匹配至少有1个ASCII字母或数字的字符串(由于
(?=.[a-zA-Z0-9])
),并且只有1个单词字符后跟
6
符号。因此,它将匹配字符串,如
16
\u6
a6
。因此,它不会像您期望的那样工作

你可以用

^(?=.{6}$)\d*(?:\p{L}\d*){2}$

说明

  • ^
    -字符串的开头
  • (?=.{6}$)
    -确保字符串中有6个字符的检查
  • \d*
    -零位或更多位
  • (?:\p{L}\d*){2}
    -2个字母和0+数字序列
  • $
    -字符串结尾
如果需要将表达式限制为匹配ASCII字母和数字,请将
\p{L}
替换为
[a-zA-Z]
,将
\d
替换为
[0-9]

此外,为了确保字符串的开头和结尾匹配,请使用
\z
锚定,而不是
$
您的
^(?=.[a-zA-Z0-9])(\w6)$
匹配至少有1个ASCII字母或数字(由于
(?=.[a-zA-Z0-9])/code>)且只有1个单词字符后跟
6
符号的字符串。因此,它将匹配字符串,如
16
\u6
a6
。因此,它不会像您期望的那样工作

你可以用

^(?=.{6}$)\d*(?:\p{L}\d*){2}$

说明

  • ^
    -字符串的开头
  • (?=.{6}$)
    -确保字符串中有6个字符的检查
  • \d*
    -零位或更多位
  • (?:\p{L}\d*){2}
    -2个字母和0+数字序列
  • $
    -字符串结尾
如果需要将表达式限制为匹配ASCII字母和数字,请将
\p{L}
替换为
[a-zA-Z]
,将
\d
替换为
[0-9]

此外,为了确保字符串的开头和结尾匹配,请使用
\z
锚定,而不是
$