regex - 忽略正则表达式中一组数字之间的空格?
问题描述
您好,我正在尝试读取正则表达式中的增值税号,前面带有国家/地区代码:
GB 009 0009 09
它们可以这样格式化
GB009000909
GB 009000909
GB 0 09 0009 09
我现在的表达是:(GB\d{9}\b|GB\s{1}\d{9}\b)
我该如何保持简单并忽略空格?
解决方案
您可以使用GB(\s?\d){9}
GB
从字面上匹配字符 GB(区分大小写)
第一捕获组(\s?\d){9}
{9}
量词——精确匹配 9 次
重复捕获组将仅捕获最后一次迭代。如果您对数据不感兴趣,请在重复组周围放置一个捕获组以捕获所有迭代或使用非捕获组
\s?
匹配任何空白字符(等于[\r\n\t\f\v ]
)
?
量词 - 匹配 0 到 1 次,尽可能多次,根据需要回馈(贪婪)
\d
匹配一个数字(等于[0-9]
)