匹配重复数字(3或更多)的正则表达式忽略空格

时间:2016-12-28 20:26:46

标签: regex qregularexpression

您好我一直在调查,虽然我还没有设法弄清楚如何创建一个只匹配数字的正则表达式,连续重复3次或更多次而忽略空格。

示例i目前(\ d)\ 1 {3,}匹配

1111 2568856等 1111 2568 856等

虽然在空格之前和之后存在重复时失败

6 111 1 256 8856

为了匹配这个,我还需要添加到正则表达式中?

由于

2 个答案:

答案 0 :(得分:1)

使用反向引用再次匹配相同的数字:

(\s?\d\s?)(\s?\1){2,}

https://regex101.com/r/FNNS1z/3

http://www.regular-expressions.info/backref.html

答案 1 :(得分:0)

我认为这是有效的:

(\ d)\ S?(\ 1 \ S'){3,}

" \ s?"部分帐户可选空格,"?"等于{0,1}。

我使用stringr包检查了R(注意我必须逃避反斜杠):

> str_extract_all("221 1 1 122 ", "(\\d)\\s?(\\1\\s?){3,}")
[[1]]
[1] "1 1 1 1"