查找只有一个偏差的匹配序列

时间:2014-09-15 14:19:39

标签: c# regex tsql

我正在尝试实现一个以一系列数字(美国社会保障号)作为参数的功能,并返回一个与输入匹配的SSN集合,只有一个偏差。

因此,输入123456789将返回:

  • 123的 3 56789
  • 1 9 3456789
  • 12345的 0 789

但不会返回123 54 6789等

我在ASP.NET中有一个系统,它使用通配符对输入进行模式匹配,例如123 ** 6789。所以我可以使用循环来适应这一点。但是如果有一个正则表达式,我会在SQL中实现它并完成它。

那么,是否有一个正则表达式可以做到这一点,而不必在for循环中调用它?

1 个答案:

答案 0 :(得分:2)

不幸的是,我不是正则表达式的专家,但我认为您可以使用简单的正则表达式来检查测试值和输入值之间的减法的绝对值。可接受的结果应该是1位数和0或更多尾随零。对于您的示例值:

Testing value    Input value    ABS(Subtraction)
--------------+--------------+------------------
123356789        123456789      100000
193456789        123456789      70000000
123450789        123456789      6000
123456786        123456789      3