我需要排除以下字符串格式
APXXXX.XXXX.XXXX
(X是十六进制字符A-F、a-f或0-9)。AP是固定的,后面是3组4个十六进制字符,由一个点分隔。十六进制字符可以是大写或小写字母。但其他字符串,如
APLS1001 apcn5001 aplscha6 APUS4005 APLSC453
必须通过正则表达式匹配。在这些字符串中没有点。有什么想法吗。先谢了我尝试了很多,但没有好的结果。
lh80um4z1#
这个正则表达式:
^(?![aA][pP][[:xdigit:]]{4}\.[[:xdigit:]]{4}\.[[:xdigit:]]{4}$)\w+$
| 节点|解释|| --|--|| ^|字符串锚的开头|| (?!|看看是否有:|| [aA]|任何特征:'a','A'|| [pP]|任何特征:“P”,“P”|| [[:xdigit:]]{4}|任何特征:十六进制数字(a- f,A-F,0-9)(4次)|| \.|- 是的|| [[:xdigit:]]{4}|任何特征:十六进制数字(a- f,A-F,0-9)(4次)|| \.|- 是的|| [[:xdigit:]]{4}|任何特征:十六进制数字(a- f,A-F,0-9)(4次)|| $|在可选的\n之前,字符串锚的结尾|| )|先行结束|| \w+|单词字符(a-z,A-Z,0-9,_)(1次或多次(匹配最大可能量))|| $|在可选的\n之前,字符串锚的结尾|
^
(?!
[aA]
[pP]
[[:xdigit:]]{4}
\.
$
)
\w+
fhg3lkii2#
我试着做了一个如下的正则表达式模式,可以完全完成你的前辈:
^(?!AP[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$)[A-Za-z0-9]+$
对此的解释:^字符串的开头。(?! ... )是一个负先行Assert。它是一个非捕获组,检查特定的模式,但不包括在匹配中。它用于Assert某个条件未满足。在这种情况下,它会检查是否存在模式。AP字面意思是“AP”。模式的这一部分检查输入开头的特定字符串“AP”。[0-9A-Fa-f]{4}只匹配四个字符。它可以是以下集合中的任何字符:0-9:数字0到9。A-F:大写十六进制字母A到F。a-f:小写十六进制字母a到f。\.:匹配点(句点)字符。由于点是正则表达式中的特殊字符,因此需要使用反斜杠对其进行转义,才能将其视为文字点。[0-9A-Fa-f]{4}(重复三次):这部分类似于前面的[0-9A-Fa-f]{4},但重复了三次。它确保有三组字符,每组正好有四个字符,由点分隔。$声明字符串的结尾。它确保模式应用于整个字符串,这意味着在第三组四个字符和最后一个点之后没有字符。[A-Za-z0-9]+匹配一个或多个字母数字字符(字母或数字)。$字符串的结尾。编辑:添加了正则表达式的详细解释。
(?! ... )
AP
[0-9A-Fa-f]{4}
0-9
A-F
a-f
[A-Za-z0-9]+
2条答案
按热度按时间lh80um4z1#
这个正则表达式:
Regex Demo
正则表达式匹配如下:
| 节点|解释|
| --|--|
|
^
|字符串锚的开头||
(?!
|看看是否有:||
[aA]
|任何特征:'a','A'||
[pP]
|任何特征:“P”,“P”||
[[:xdigit:]]{4}
|任何特征:十六进制数字(a- f,A-F,0-9)(4次)||
\.
|- 是的||
[[:xdigit:]]{4}
|任何特征:十六进制数字(a- f,A-F,0-9)(4次)||
\.
|- 是的||
[[:xdigit:]]{4}
|任何特征:十六进制数字(a- f,A-F,0-9)(4次)||
$
|在可选的\n之前,字符串锚的结尾||
)
|先行结束||
\w+
|单词字符(a-z,A-Z,0-9,_)(1次或多次(匹配最大可能量))||
$
|在可选的\n之前,字符串锚的结尾|fhg3lkii2#
我试着做了一个如下的正则表达式模式,可以完全完成你的前辈:
对此的解释:
^
字符串的开头。(?! ... )
是一个负先行Assert。它是一个非捕获组,检查特定的模式,但不包括在匹配中。它用于Assert某个条件未满足。在这种情况下,它会检查是否存在模式。AP
字面意思是“AP”。模式的这一部分检查输入开头的特定字符串“AP”。[0-9A-Fa-f]{4}
只匹配四个字符。它可以是以下集合中的任何字符:0-9
:数字0到9。A-F
:大写十六进制字母A到F。a-f
:小写十六进制字母a到f。\.
:匹配点(句点)字符。由于点是正则表达式中的特殊字符,因此需要使用反斜杠对其进行转义,才能将其视为文字点。[0-9A-Fa-f]{4}
(重复三次):这部分类似于前面的[0-9A-Fa-f]{4}
,但重复了三次。它确保有三组字符,每组正好有四个字符,由点分隔。$
声明字符串的结尾。它确保模式应用于整个字符串,这意味着在第三组四个字符和最后一个点之后没有字符。[A-Za-z0-9]+
匹配一个或多个字母数字字符(字母或数字)。$
字符串的结尾。编辑:添加了正则表达式的详细解释。