正则表达式匹配重复数字(3 个或更多)忽略空格
Regex matching repeating digits (3 or more) ignore whitespace
我一直在研究,虽然我还没有弄清楚如何创建一个正则表达式,它只匹配连续重复 3 次或更多次的数字,同时忽略白色 spaces。
例如我目前有 (\d)\1{3,} 匹配
11112568856 等
1111 2568 856 等
尽管在 space
前后存在重复时失败
6111 1256 8856
我需要在正则表达式中添加什么才能匹配它?
我认为这有效:
(\d)\s?(\s?){3,}
“\s?”部分说明可选空格,“?”等于 {0,1}。
我在 R 中检查了 stringr 包(注意我必须转义反斜杠):
> str_extract_all("221 1 1 122 ", "(\d)\s?(\1\s?){3,}")
[[1]]
[1] "1 1 1 1"
使用backreferences再次匹配同一个数字:
(\s?\d\s?)(\s?){2,}
None 的答案对我有用(在 PHP 中),但这似乎可以完成工作:
(\d(\s*)?){3,}
我一直在研究,虽然我还没有弄清楚如何创建一个正则表达式,它只匹配连续重复 3 次或更多次的数字,同时忽略白色 spaces。
例如我目前有 (\d)\1{3,} 匹配
11112568856 等 1111 2568 856 等
尽管在 space
前后存在重复时失败6111 1256 8856
我需要在正则表达式中添加什么才能匹配它?
我认为这有效:
(\d)\s?(\s?){3,}
“\s?”部分说明可选空格,“?”等于 {0,1}。
我在 R 中检查了 stringr 包(注意我必须转义反斜杠):
> str_extract_all("221 1 1 122 ", "(\d)\s?(\1\s?){3,}")
[[1]]
[1] "1 1 1 1"
使用backreferences再次匹配同一个数字:
(\s?\d\s?)(\s?){2,}
None 的答案对我有用(在 PHP 中),但这似乎可以完成工作:
(\d(\s*)?){3,}