如何使数字的后9位与空格颤动相匹配

时间:2018-12-03 15:21:36

标签: regex flutter

我尝试只匹配电话号码的9位数字

我有多个输入

+33123456789

0123456789

+33 01 23 45 67 89

01 23 45 67 89

我想要一个输出123456789

目前我已经找到了匹配方法    +33123456789 要么    0123456789

带有(\ d {9} $)

但是我找不到如何与

之间的空格匹配

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用重复匹配一个数字,然后用0+乘以空格8次。对于最后一位,您还可以将0+乘以一个空格和一位数字,并将其捕获到一个组中。

在捕获的组匹配0 *后乘以一个空格并声明字符串的结尾。

((?:\d *){8} *\d) *$

说明

  • (捕获组
    • (?:\d *){8}将与数字匹配的非捕获组重复8次,并在空格处重复0+次
    • *\d匹配0+倍的空格后跟一个数字
  • )关闭非捕获组
  • *$匹配0+乘以一个空格并声明字符串的结尾

第一个捕获组中的9位数字(包括它们之间的空格)。

Regex demo

答案 1 :(得分:1)

您可以使用

(?:\+\d{2}\ ?)?(\d[\d ]*\d)

并使用第一组,请参见a demo on regex101.com