REGEX 删除空格或破折号,如果它们位于数字之间



我正在修改现有的正则表达式以匹配信用卡号。有时,此类数字表示如下,用空格或破折号分隔数字块,如下所示;

3756-4564-2323-3435
3756 6432 3233 435

应对这些类型的匹配进行预处理以删除这些特殊字符。通常数字块为 3 到 4 位数字。

谢谢

在 bash 中,您可以删除任何不是数字的内容:

$ var="3756-4564-2323-3435"
$ echo "${var//[^0-9]}"
3756456423233435

正如@Ed提到的,在寻求解决方案之前,您应该尝试自己解决问题。否则,(d{4})[ -]((d{4})[ -](d{4})[ -](d{3,4})不应该正确匹配数字,将每个部分存储在捕获组 1-4 中吗?

如果您需要处理尚未具有分隔符的数字,只需使用?限定符使它们可选:(d{4})[ -]?((d{4})[ -]?(d{4})[ -]?(d{3,4})

相关内容

  • 没有找到相关文章