gre使用r格式化的数字

时间:2016-05-11 14:54:35

标签: regex r grep

我有一个字符串格式,我想从字符向量中选择。表格是

123 123 1234 

其中两个空格也可以是连字符。即3位数后跟空格或连字符,后跟3位数字,后跟空格或连字符,后跟4位数字

我试图通过以下方式做到这一点:

grep("^([0-9]{3}[ -.])([0-9]{3}[ -.])([0-9]{4}$)",mytext)
然而,这会产生:

integer(0)

我做错了什么?

1 个答案:

答案 0 :(得分:2)

你的字符串末尾有一个空格,所以你可以考虑这个空格,如下所示:

grep("^([0-9]{3}[ -.])([0-9]{3}[ -.])([0-9]{4} $)",mytext)

或删除行结束断言"$",如下所示:

grep("^([0-9]{3}[ -.])([0-9]{3}[ -.])([0-9]{4})",mytext)

此外,正如WiktorStribiżew所指出的,角色类[ -.]将匹配" ""."之间范围内的任何字符。要匹配"-""."" ",您必须转义"-"或将其放在课程结束时。与[ \-.][ .-]

相同