我有一个字符串格式,我想从字符向量中选择。表格是
123 123 1234
其中两个空格也可以是连字符。即3位数后跟空格或连字符,后跟3位数字,后跟空格或连字符,后跟4位数字
我试图通过以下方式做到这一点:
grep("^([0-9]{3}[ -.])([0-9]{3}[ -.])([0-9]{4}$)",mytext)
然而,这会产生:
integer(0)
我做错了什么?
答案 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所指出的,角色类[ -.]
将匹配" "
和"."
之间范围内的任何字符。要匹配"-"
,"."
和" "
,您必须转义"-"
或将其放在课程结束时。与[ \-.]
或[ .-]