^
定位表达式,目标开始
$
定位表达式,目标结束
.
匹配换行符以外的任何单个字符
( )
将相同模式放在一起
*
匹配前面的实体出现0次或更多次
?
匹配前面的实体出现0次或1次
+
匹配前面的实体出现1次或更多次
{n}
匹配前面的实体精确地出现n次
{n,}
匹配前面的实体至少出现n次
{n.m}
匹配出现次数在n和m次之间
[]
包含,默认是一个字符长度
[^]
不包含,默认是一个字符长度
|
或
\
转义
[A-Z]
26个大写字母
[a-z]
26个小写字母
[0-9]
0至9数字
[A-Za-z0-9]
26个大写字母、26个小写字母和0至9数字
,
分割
分割语法:
- [A,H,T,W] 包含A或H或T或W字母
- [a,h,t,w] 包含a或h或t或w字母
- [0,3,6,8] 包含0或3或6或8数字
也可以用|
- [A|H|T|W] 包含A或H或T或W字母
- [a|h|t|w] 包含a或h或t或w字母
- [0|3|6|8] 包含0或3或6或8数字
\d
:匹配0-9之间的任一数字,相当于[0-9]
\w
:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
\s
:用于查找空白字符。空白字符可以是:<strong>空格符、制表符、回车符 、换行符、垂直换行符、换页符。</strong>
[a-zA-Z0-9]
:匹配任意的字母和数字
\b
:匹配单词边界。
.
:用于查找单个字符,除了换行和行结束符。
*
:匹配前面元字符0次或多次,/ba/将匹配b,ba,baa,baaa ...
+
:匹配前面元字符1次或多次,/ba/将匹配ba,baa,baaa...
?
:匹配前面元字符0次或1次,/ba*/将匹配b,ba
x{3}
:查找x出现3次的元素
加上括号,就是将匹配到的内荣中的括号内的东西提取出来
(.*?)
为懒惰匹配,代表尽量少的匹配
R
R里面特殊的
\\d
0-9之间的一个数字
\\w
a-zA-Z0-9_中间的一个
\\s
一个空格
[.] 这能匹配一个点号
[- .] 只能匹配一个-
或者一个空格或者一个.
strings <- c(" 219 733 8965", "329-293-8753 ", "banana", "595 794 7569",
"387 287 6718", "apple", "233.398.9187 ", "482 952 3315",
"239 923 8115 and 842 566 4692", "Work: 579-499-7527", "$1000",
"Home: 543.355.3679","13764132564")
phone <- "([2-9][0-9]{2})[- .]([0-9]{3})[- .]([0-9]{4})" ##因为有三个括号,所以返回三列
phone2 <- "([2-9][0-9]{2})[- .]([0-9]{3})[- .]([0-9]{4})
phone2 <- "(\\d{3})[- .](\\d{3})[- .](\\d{4})"
paten="^1[3|4|5|7|8][0-9]{9}$"
paten="^1[3,4,5,7,8]\\d{9}$"
str_match(strings, phone)
str_match(strings, pat)
image.png
网友评论