Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex mod 11带正则表达式的校验位_Regex_Check Digit - Fatal编程技术网

Regex mod 11带正则表达式的校验位

Regex mod 11带正则表达式的校验位,regex,check-digit,Regex,Check Digit,是否可以使用regex语句创建mod 11校验位例程 nubmer是一个10位数字 步骤1: A=(第二个数字*2)+(第三个数字*4)+(第四个数字*8)+(第五个数字*5)+(第六个数字*10)+(第七个数字*9)+(第八个数字*7)+(第九个数字*3)) 步骤2: B=A/11(点火余数) 步骤3: C=B*11 步骤4: D=A-C 步骤5: 11-D必须=第10位数字否-基本上你想在这里做数学,而这与仅仅是模式的正则表达式不太相符 我的意思是,从理论上讲,这当然是可能的——你可以列出所

是否可以使用regex语句创建mod 11校验位例程

nubmer是一个10位数字

步骤1: A=(第二个数字*2)+(第三个数字*4)+(第四个数字*8)+(第五个数字*5)+(第六个数字*10)+(第七个数字*9)+(第八个数字*7)+(第九个数字*3))

步骤2: B=A/11(点火余数)

步骤3: C=B*11

步骤4: D=A-C

步骤5:
11-D必须=第10位数字

否-基本上你想在这里做数学,而这与仅仅是模式的正则表达式不太相符


我的意思是,从理论上讲,这当然是可能的——你可以列出所有有效的数字,并将它们组合成一个巨大的正则表达式。然而,它实际上并不可行。

Regex进行模式匹配,而不是真正的解析。您需要解析数字以获得数字。我建议使用正则表达式来确保它是一个10位数字,然后将它串起来并切碎。

将正则表达式用作有限状态机

为什么要使用正则表达式,因为它没有正则表达式就这么简单?这正是我要说的。正则表达式不是图灵完全语言;数学是它不能做的事情之一。