首页 > 解决方案 > 忽略正则表达式中一组数字之间的空格?

问题描述

您好,我正在尝试读取正则表达式中的增值税号,前面带有国家/地区代码:

GB 009 0009 09

它们可以这样格式化

GB009000909
GB 009000909
GB 0 09 0009 09

我现在的表达是:(GB\d{9}\b|GB\s{1}\d{9}\b)

我该如何保持简单并忽略空格?

标签: regex

解决方案


您可以使用GB(\s?\d){9}

GB从字面上匹配字符 GB(区分大小写)

第一捕获组(\s?\d){9}

{9}量词——精确匹配 9 次

重复捕获组将仅捕获最后一次迭代。如果您对数据不感兴趣,请在重复组周围放置一个捕获组以捕获所有迭代或使用非捕获组

\s?匹配任何空白字符(等于[\r\n\t\f\v ]

?量词 - 匹配 0 到 1 次,尽可能多次,根据需要回馈(贪婪)

\d匹配一个数字(等于[0-9]

自己测试一下


推荐阅读