一定长度的正则表达式忽略指定的字符

时间:2010-11-08 15:59:48

标签: regex

假设我们有一些定义的长度字符串,可能包含一些分隔符,仅用于用户友好的视图。

示例:9位数字符串“123456789”,可以显示为“123,456,789”或“123.456.789”或“1-234-5-67-89”或“123 456 789”

我需要的是一个正则表达式,可以计算长度忽略分隔符。 像[\d|,\.\-\s]{9}这样的东西,但只有\ d计入{9}(允许任意数量的分隔符...可选,分隔符不应超过连续两行)

2 个答案:

答案 0 :(得分:4)

^[-.,\s]*(?:\d[-.,\s]*){9}$

可选地,分隔符不应超过两行:

^[-.,\s]{0,2}(?:\d[-.,\s]{0,2}){9}$

答案 1 :(得分:0)

我宁愿使用更简单的正则表达式来代替我在寻找可能做到这一点的合适正则表达式时烦恼:

  • 找到所有数字并检查匹配数量,或
  • 删除所有非数字并检查剩余的数字。