Regex 正则表达式:需要验证条形码
我需要通过regex验证以下条形码: TE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201 我们的条形码扫描器有时会从条形码中删除一些字符,因此我需要通过以下正则表达式规则对其进行验证:Regex 正则表达式:需要验证条形码,regex,Regex,我需要通过regex验证以下条形码: TE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201 我们的条形码扫描器有时会从条形码中删除一些字符,因此我需要通过以下正则表达式规则对其进行验证: 以“TE1310”开头 空间 第二组字符的长度正好是8。可以包含数字或字母 空间 第三组包含16个字符。可以是数字或字母 空间 第四组必须精确为“0013.0002.0000” 空间 第五集和最后一集包含8个字符。仅数字 我有以下正则
#7
很简单,应该是0013\.0002\.0000
您必须确保转义句号,如果语言需要转义字符,请转义转义字符
所以,试试看
TE1310\s[A-Za-z0-9]{8}\s[A-Za-z0-9]{16}\s0013\.0002\.0000\s\d{8}
当然,假设其余的点是正确的
另外,正如Sednus所说,您可能希望匹配字符串的开头和结尾。传统的符号是开头的^
,结尾的$
,但我会查看您的特定语言的参考,以防万一
如果不这样做,正则表达式将在较大的字符串中找到任何TE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201
,例如
asgsdaTE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201qeasdfa
#7
很简单,应该是0013\.0002\.0000
如果语言需要,你必须确保转义句点,并转义转义字符
所以,试试看
TE1310\s[A-Za-z0-9]{8}\s[A-Za-z0-9]{16}\s0013\.0002\.0000\s\d{8}
当然,假设其余的点是正确的
另外,正如Sednus所说,您可能希望匹配字符串的开头和结尾。传统的符号是开头的^
,结尾的$
,但我会查看您的特定语言的参考,以防万一
如果不这样做,正则表达式将在较大的字符串中找到任何TE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201
,例如
asgsdaTE1310 2000183B 804F58000020183B 20120509 0013.0002.0000 20161201qeasdfa
我假设一个类似于JavaScript的正则表达式语法,基本思想可以转换成我所知道的任何其他正则表达式
1:从TE1310开始
^
仅用于匹配字符串开头的字符,后面的字符按字面匹配
2:空间
我添加了/
正则表达式分隔符,以表明正则表达式中实际上包含一个空格字符。如果您的正则表达式语法支持其他分隔符,您可能会看到类似于~^TE1310~
的内容
3:第二组字符的长度正好是8。可以包含数字或字母
[abc]
用于选择所提供集合中的字符,使用a-zA-Z0-9
可匹配任何字母(大写或小写)或数字。{n}
用于重复前面的选择器n
次
4:空间
5:第三组正好包含16个字符。可以是数字或字母
6:空间
7:第四组必须正好0013.0002.0000
\。
用于转义
,它是任何非换行符的选择器。如果要在字符串中构建正则表达式,可能需要对\
字符进行双转义,因此它可能是\\.
而不是\.
8:空间
9:第五集和最后一集包含8个字符。仅数字
\d
匹配数字,它相当于[0-9]
。与\.
类似,您可能需要对\
字符进行双转义,该字符将改为\\d
10:字符串结束
您没有明确提到它,但我假设匹配应该只匹配与此模式完全匹配的行,并且后面没有尾随的数字/字母:
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 \d{8}$/
$
用于匹配字符串的最末端。我假设使用类似于JavaScript的正则表达式语法,基本思想可以转换为我所知道的任何其他正则表达式
1:从TE1310开始
^
仅用于匹配字符串开头的字符,后面的字符按字面匹配
2:空间
我添加了/
正则表达式分隔符,以表明正则表达式中实际上包含一个空格字符。如果您的正则表达式语法支持其他分隔符,您可能会看到类似于~^TE1310~
的内容
3:第二组字符的长度正好是8。可以包含数字或字母
[abc]
用于选择所提供集合中的字符,使用a-zA-Z0-9
可匹配任何字母(大写或小写)或数字。{n}
用于重复前面的选择器n
次
4:空间
5:第三组正好包含16个字符。可以是数字或字母
6:空间
7:第四组必须正好0013.0002.0000
\。
用于转义
,它是任何非换行符的选择器。如果要在字符串中构建正则表达式,可能需要对\
字符进行双转义,因此它可能是\\.
而不是\.
8:空间
9:第五集和最后一集包含8个字符。仅数字
\d
匹配数字,它是eq
/^TE1310 /
/^TE1310 [a-zA-Z0-9]{8}/
/^TE1310 [a-zA-Z0-9]{8} /
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16}/
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} /
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000/
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 /
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 \d{8}/
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 \d{8}$/