C#NET中的特定正则表达式
我需要构建一个正则表达式,该表达式应适用于以下内容: (适用于1-4个块(用“/”分隔),其中正好包含4个十六进制数字字符) 我就是搞不懂。以下是我目前拥有的: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: ([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