Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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#NET中的特定正则表达式_C#_.net_Regex - Fatal编程技术网

C#NET中的特定正则表达式

C#NET中的特定正则表达式,c#,.net,regex,C#,.net,Regex,我需要构建一个正则表达式,该表达式应适用于以下内容: (适用于1-4个块(用“/”分隔),其中正好包含4个十六进制数字字符) 我就是搞不懂。以下是我目前拥有的: 1: ([0-9A-F]{4})( \/ \1){1,3}|[0-9A-F]{4} 2: [0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4}|[0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4}|[0-9A-F]{4} \/ [0-9A-F]{4

我需要构建一个正则表达式,该表达式应适用于以下内容:

(适用于1-4个块(用“/”分隔),其中正好包含4个十六进制数字字符)

我就是搞不懂。以下是我目前拥有的:

1: ([0-9A-F]{4})( \/ \1){1,3}|[0-9A-F]{4}
2: [0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4}|[0-9A-F]{4} \/ [0-9A-F]{4} \/ [0-9A-F]{4}|[0-9A-F]{4} \/ [0-9A-F]{4}|[0-9A-F]{4}

第二个很难看,两个都不起作用

如果逐行输入,我认为这可能有效:

^([0-9A-F]{4})( \/ [0-9A-F]{4}){0,3}$

这应该可以做到:

^[\dA-F]{4}( \/ [\dA-F]{4}){0,3}$
它匹配第一个块(4个十六进制字符),然后可选地匹配由
/
分隔的0-3个后续块

 ^[0-9A-F]{4}( \/ [0-9A-F]{4}){0,3}$
模式:

 ^                      - string start
 [0-9A-F]{4}            - 4 hex digits
 ( \/ [0-9A-F]{4}){0,3} - up to 3 more 4 digits groups
 $                      - string end

第二行无效4FOT中的“T”也不是十六进制。:-)@SamvelPetrosov,修复了thanksIs
3F00/FA41
(不带空格)的有效性?是否只想验证一行是否符合正则表达式模式,还是还想提取匹配的4个字符的单词?如果块包含不同的字符,则不起作用:FFFF/FFFF=valid;2222/1111=invalid删除back引用,那么它应该可以工作。对不起,忘记删除了。这允许4个以上的块,这将是invalid@Mr.Toast:如果我们想要多达
4个
块<应该使用code>{,3}
而不是
*
 ^                      - string start
 [0-9A-F]{4}            - 4 hex digits
 ( \/ [0-9A-F]{4}){0,3} - up to 3 more 4 digits groups
 $                      - string end