是否可以使用正则表达式语句创建 mod 11 校验位例程?
数字是一个 10 位数字,
步骤1:A =(2号*2)+(3号*4)+(4号*8)+(5号*5)+(6号*10)+(7号*9)+(8号) * 7) + (第 9 个数字 * 3))
第 2 步:B = A / 11(忽略余数)
第 3 步:C = B * 11
第 4 步:D = A - C
第 5 步:11 - D 必须 = 第 10 位
是否可以使用正则表达式语句创建 mod 11 校验位例程?
数字是一个 10 位数字,
步骤1:A =(2号*2)+(3号*4)+(4号*8)+(5号*5)+(6号*10)+(7号*9)+(8号) * 7) + (第 9 个数字 * 3))
第 2 步:B = A / 11(忽略余数)
第 3 步:C = B * 11
第 4 步:D = A - C
第 5 步:11 - D 必须 = 第 10 位
不——基本上你想在这里做数学,这并不适合正则表达式,正则表达式只是关于模式。
我的意思是,理论上这当然是可能的——您可以列出所有有效数字,并将它们组合成一个巨大的正则表达式。但是,这实际上并不可行。
使用正则表达式作为有限状态机。 http://quaxio.com/triple/
正则表达式进行模式匹配,而不是真正的解析。您需要解析数字以获取数字。我建议使用正则表达式来确保它是一个 10 位数字,然后使用 ToString() 并将其切碎。