歐陽老師網(wǎng)頁教程筆記(2)

正則表達(dá)式

幾個(gè)函數(shù):
grep, grepl, sub, gsub, regexpr, gregrexpr, regexec
strsplit, apropos, browseEnv

username@domainname.com正則下是這樣表示,

 ^[A-Za-z0-9\\._%+-]+@[A-Za-z0-9\\.-]+\\.[A-Za-z]{2,4}$

grepl會(huì)返回一個(gè)邏輯值,l就代表logical, g就代表global

pattern="^[A-Za-z0-9\\._%+-]+@[A-Za-z0-9\\.-]+\\.[A-Za-z]{2,4}$"
str<-c("abc","someone@bioconductor.org","efg","anotherone@gmail.com","thirdone@yahoo.cn")

grepl(pattern,str)

grep會(huì)返回匹配的id

grep(pattern,str)

egexpr會(huì)返回一個(gè)數(shù)字,1表示匹配,-1表示不匹配,還會(huì)返回兩個(gè)屬性,匹配的長(zhǎng)度以及是否使用useBytes。useBytes一般很少會(huì)使用到false,因?yàn)槲覀儾惶幚韺捵址?/p>

regexpr(pattern,str)

字符

.  # 除了換行以外的任意字符
^  # 一行字符串的起始,它并不代表第一個(gè)字符,只代表這里開始新的一行字符串。
$  # 一行字符串的結(jié)束,它并不代表最后一個(gè)字符(因?yàn)閾Q行符并不會(huì)被包含進(jìn)匹配當(dāng)中),只代表一行字符串到這里結(jié)束。
*  # 零個(gè)或者多個(gè)之前的字符
+  # 一個(gè)或者多個(gè)之前的字符
?  # 零個(gè)或者一個(gè)之前的字符

^f       # 一行字符以f起始
^ftp    # 一行字符以ftp起始
e$      # 一行字符以e結(jié)尾
tle$    # 一行字符以tle結(jié)尾
und*   # un跟著零個(gè)或者多個(gè)d字符

.*    # 任意一個(gè)無換行的字符串,
      #  . 匹配任何一個(gè)非換行字符
      #  * 將匹配一個(gè)或者多個(gè)之前的字符.
 
[]    # 在正則中有方括號(hào)[],代表可以匹配其中任何一個(gè)字符。而^在[]中就有了新的意義,代表“非”, -代表了“之間”
[qjk]        # q,j,k中任意一個(gè)字符
[^qjk]        # 非q,j,k的任意其它字符
[a-z]        # a至z中任意一個(gè)小寫字符
[^a-z]        # 非任意一個(gè)a至z小寫字符的其它字符(可以是大寫字符)
[a-zA-Z]    # 任意一個(gè)英文字母
[a-z]+        # 一個(gè)或者多個(gè)小寫英文字母

|     # |代表或者 小括號(hào)(...)可以把或者的部分括起來。注意小括號(hào)可能還有別的用途,但是在R當(dāng)中先不使用。
jelly|cream    # jelly或者cream
(eg|le)gs    # eggs或者legs
(da)+        # da或者dada或者dadada 或者更多個(gè)da的重復(fù)

{}          # 大括號(hào)括住1至2個(gè)數(shù)字,代表重復(fù)次數(shù)。
*           # 零個(gè)或者多個(gè)之前的字符
+          # 一個(gè)或者多個(gè)之前的字符
?          # 零個(gè)或者一個(gè)之前的字符
{n}        # n個(gè)之前的字符
{n,}       # 大于等于n個(gè)之前的字符
{n,m}    # n至m個(gè)之前的字符

神奇的轉(zhuǎn)義符 \

# 下面的是一些字符被轉(zhuǎn)義符\轉(zhuǎn)義會(huì)賦以了一些新的(有可能是約定俗成的)意義
\n        # 換行符
\t        # tab
\w        # 任意字母(包括下劃線)或者數(shù)字
        # 等同于[a-zA-Z0-9_]
\W        # \w的反義.
        # 等同于[^a-zA-Z0-9_]
\d        # 任意一個(gè)數(shù)字,等同于[0-9]
\D        # \d的反義,等同于[^0-9]
\s        # 任意一個(gè)空格,比如,
        # space, tab, newline, 等
\S        # \s的反義,任意一個(gè)非空格
\b        # 單詞的邊界, 不能使用在[]內(nèi)
\B        # \b的反義

錨點(diǎn)特殊字符

^     # 一行字符串的起始,它并不代表第一個(gè)字符,只代表這里開始新的一行字符串。
$     # 一行字符串的結(jié)束,它并不代表最后一個(gè)字符(因?yàn)閾Q行符并不會(huì)被包含進(jìn)匹配當(dāng)中),只代表一行字符串到這里結(jié)束。
\<    # 單詞左邊界
\>    # 單詞右邊界
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、心得體會(huì) 今天完成了什么 看了20頁的鎬頭書 學(xué)了bag的10個(gè)controller 收獲什么? 新增、編輯都...
    柳輝閱讀 426評(píng)論 0 0
  • 類 !/usr/bin/python -- coding: UTF-8 -- class Employee:'所有...
    SkTj閱讀 1,064評(píng)論 0 0
  • Python中的正則表達(dá)式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,559評(píng)論 0 99
  • ??引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,213評(píng)論 0 1
  • 金庸去了,一代武俠宗師落幕,一個(gè)武俠江湖夢(mèng)己滅!老爺子人已去,卻留下了大量的小說供后來得時(shí)代的人讀。繼續(xù)流傳他久遠(yuǎn)...
    逍遙子_8c4a閱讀 425評(píng)論 0 0

友情鏈接更多精彩內(nèi)容