我有一个格式为123456########
的条形码。也就是说,前6位数字始终相同,后跟8位数字。
我如何检查变量是否与该格式匹配?
答案 0 :(得分:5)
123456\d{8}
123456 # Literals
\d # Match a digit
{8} # 8 times
您可以将{8}
更改为任意位数,具体取决于静态数字后的数字。
答案 1 :(得分:5)
您尚未指定语言,但正在使用regexp。语法在各实现之间相对统一,因此类似下面的内容应该有效:123456\d{8}
\d
表示数字字符,通常等同于集合[0-9]
。{8}
表示重复前面的字符集恰好八次。根据输入的输入方式,您可能希望锚定正则表达式。正是如此:
^123456\d{8}$
^
匹配行或字符串的开头,$
匹配结尾。或者,您可能希望使用单词边界,以确保条形码字符串被正确分隔:
\b123456\d{8}\b
\b
匹配空字符串但仅在单词的边缘(通常定义为由字母数字字符和下划线组成的序列,但这可能与语言环境有关)。
答案 2 :(得分:3)
123456\d{8}
应该这样做。这分解为:
{8}
如果您在该范围内有最小或最大数字,则可以取2个数字,因此如果前一个元素必须重复6到8次,您可以{6,8}
。
答案 3 :(得分:2)
你描述它的方式,它只是
^123456[0-9]{8}$
...用您的6位已知数字替换123456
。我使用的是[0-9]
而不是\d
,因为我不知道你正在使用什么样的正则表达式,而\d
允许某些风格的非阿拉伯数字(如果你担心的话) )。