R/python 正则表达式

作者: 一路向前_莫问前程_前程似锦 | 来源:发表于2018-12-24 15:52 被阅读32次

    ^ 定位表达式,目标开始

    $定位表达式,目标结束

    .匹配换行符以外的任何单个字符

    ( ) 将相同模式放在一起

    * 匹配前面的实体出现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

    相关文章

      网友评论

        本文标题:R/python 正则表达式

        本文链接:https://www.haomeiwen.com/subject/qxrzkqtx.html