我假设正则表达式语法类似于 JavaScript,基本思想可以转换为我知道的任何其他正则表达式。
1:以TE1310开头
^TE1310
^
仅用于匹配字符串的开头,后面的字符按字面意思匹配。
2:空间
/^TE1310 /
我正在添加/
正则表达式分隔符以表明正则表达式中实际上包含一个空格字符。如果您的正则表达式语法支持替代分隔符,您可能会看到类似的内容~^TE1310 ~
。
3:第二组字符正好是 8 个长度。可以包含数字或字母
/^TE1310 [a-zA-Z0-9]{8}/
[abc]
用于在提供的集合中选择一个字符,用途a-zA-Z0-9
是匹配任何字母(大写或小写)或数字。
{n}
用于重复之前的选择器n
时间。
4:空间
/^TE1310 [a-zA-Z0-9]{8} /
5:第三组正好包含 16 个字符。可以是数字或字母
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16}/
6:空间
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} /
7:第 4 组必须准确0013.0002.0000
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000/
\.
用于转义.
which 是任何非换行符的选择器。如果您在字符串中构建正则表达式,您可能需要对\
字符进行双重转义,因此它可能\\.
不是\.
8:空间
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 /
9:第 5 组也是最后一组包含 8 个字符。仅限数字
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 \d{8}/
\d
匹配数字,相当于[0-9]
. 与您类似,\.
您可能需要对\
字符进行双重转义,这将是\\d
相反的。
10:字符串结束
你没有明确提到它,但我认为匹配应该只匹配与此模式完全匹配的行,并且后面不跟尾随数字/字母:
/^TE1310 [a-zA-Z0-9]{8} [a-zA-Z0-9]{16} 0013\.0002\.0000 \d{8}$/
$
用于匹配字符串的末尾。