我正在寻找将在C程序中使用的正则表达式模式以匹配以下模式:
•至少包含一位数字
•如果有多个数字,则必须用空格隔开
因此,以下内容有效(请注意,格式不受限制,并且可以包含任意数量的数字,只要它们之间用空格分隔即可):
rownames(r1) <- 1:nrow(r1)
rownames(r2) <- 1:nrow(r2)
identical(r1, r2)
##[1] TRUE
这些是无效的:
0
0 1
0 1 2
0 1 2 3
我是regex的新手,所以我的尝试未能得出正确的答案。我的尝试也匹配了无效的字符串,但这是我尝试过的:
0
0 00
0 12 1 0
0
0
0
00
0 1
答案 0 :(得分:0)
您可以使用以空格开头的可选重复非捕获组:
^\d(?: \d)*$
^
字符串的开头\d
匹配一个数字(或使用[0-9]
)(?: \d)*
非捕获组,以匹配空格后跟一个数字并重复0次以上$
字符串结尾。如果不支持非捕获组,则可以使用:
^[0-9]( [0-9])*$
答案 1 :(得分:0)
如果您只想匹配四个实习生,则可以使用|设置不同的条件。
^\d$|^\d\s\d$|^\d\s\d\s\d$|^\d\s\d\s\d\s\d$
^
将行的起始位置定位
\d
匹配一个数字(等于[0-9])
$
在行尾的位置