<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      2024.11.20 鮮花

      正則表達(dá)式

      核心共振

      ?超越一切震懾凡人?

      ?帶來終結(jié)機(jī)械降神?

      ?風(fēng)暴之力充滿全身?

      ?最后一擊核心共振?

      就是首先你需要知道一些元字符,也就是它的語法。

      最基本的幾個(gè):

      ^ $ 分別指定行首和行尾。

      [abc] 表示匹配 a,b,c 中的一個(gè),當(dāng)然長(zhǎng)度不限。也有一些符合人類直覺的寫法:[a-o] 表示從 a 到 o 的所有小寫字母,[1-9] [A-X] 也都是對(duì)的。

      [^abc] 表示匹配除了 a,b,c 中的一個(gè),將 ^ 放到 [] 里相當(dāng)于取反。

      {a} {a,} {a,b} 分別表示匹配恰好 \(a\) 次,至少 \(a\) 次,\([a,b]\) 次。

      . 表示一個(gè)任意除回車(\n\r)字符,在某些時(shí)候(如 C 中不指定 REG_NEWLINE 時(shí))也會(huì)匹配回車。

      () 用于劃分單元,將其中的內(nèi)容作為一個(gè)單元匹配,可以用 \x 來引用第 \(x\) 段以獲取的匹配,如 (.)\1 匹配兩個(gè)相同字符,在 C++ 中查找時(shí)會(huì)先儲(chǔ)存整個(gè)的匹配,再將每段分別儲(chǔ)存。

      | 就是或,兩邊有一邊成立就匹配。

      \b 匹配單詞和空格的邊界,并不匹配字符。

      \B \b 取反。

      \f \n \r \t \v 就是字面意思,匹配換頁,換行,制表等。

      \< \> 分別匹配詞首和詞尾,分隔符不一定是空格。

      會(huì)了上面的基本就會(huì)所有了,下面的大多都是上面的的等價(jià)簡(jiǎn)略寫法。

      ? 等價(jià) {0,1}

      + 等價(jià) {1,}

      \d 等價(jià) [0-9]

      \s 匹配不可見,等價(jià) [\f\n\r\t\v]

      \w 匹配包括下劃線在內(nèi)的所有單詞字符,等價(jià) [0-9A-Za-z_]

      \D \S \W 上面那仨的取反。

      然后想在 C++ 里用正則表達(dá)式,還要學(xué)一點(diǎn)語法。

      考慮一下速度,boost 的功能強(qiáng)大但有非?!皟?yōu)秀”的速度,C++ 的速度在匹配不上時(shí)較快,匹配上時(shí)飛慢,而且查找也是飛慢,所以這里建議大家用 C 里的 regex.h,雖然好像只有 linux 能用。

      用法就是首先你要引用 <regex.h> 庫(kù)。

      一共兩個(gè)類型,四個(gè)函數(shù):

      regex_t:用來存已經(jīng)編譯好的正則表達(dá)式。

      int regcomp(regex_t &a,const char *s,int t)a 就是用來存的,s 是需要編譯的表達(dá)式,t 是編譯 tag,一共四個(gè),等號(hào)后面是它的值:REG_EXTENDED=1 使用更牛的庫(kù),一般是要加的,REG_ICASE=2 設(shè)置大小寫不敏感,REG_NEWLINE 如果不加,默認(rèn)忽略回車,就會(huì)導(dǎo)致 ^ $ 只能匹配第一個(gè)和最后一個(gè),且 . 能匹配回車,加上了就完全取反,REG_NOSUB 不返回匹配結(jié)果,只返回是否成功匹配。

      regmatch_t:用來存匹配結(jié)果,.rm_so 表示起點(diǎn),.rm_eo 是終點(diǎn)加一。

      int regexec(regex_t &a,const char *s,size_t x,regmatch_t &c,int t):表示用表達(dá)式 a 匹配(或者說查找) s;x 是存儲(chǔ)個(gè)數(shù),會(huì)將正串匹配和 \(x-1\) 前個(gè)單元的匹配放到 c,若制定了 REG_NOSUB 會(huì)忽略;t 是 tag,一共兩種,REG_NOTBOL=1 表示禁用 ^REG_NOTEOL=2 表示禁用 $,若指定了 REG_NEWLINE 會(huì)忽略,返回值為 \(0\) 表示找到了,為其他表示沒找到或出現(xiàn)錯(cuò)誤;每次只能匹配第一個(gè),要匹配所有的話寫循環(huán)每次位移即可。

      因?yàn)?regcomp 分配了內(nèi)存,所以在每次編譯后都要用 void regfree(regex_t &a) 來釋放內(nèi)存。理論上每次重新編譯也要先釋放,但是實(shí)測(cè)不釋放也能過,不知道會(huì)不會(huì)有其他問題。

      regerror 是在產(chǎn)生錯(cuò)誤后返回錯(cuò)誤信息,感覺沒啥用,可以自行百度。

      有個(gè)板子:正則表達(dá)式

      P

      posted @ 2024-11-20 14:27  xrlong  閱讀(62)  評(píng)論(1)    收藏  舉報(bào)

      Loading

      主站蜘蛛池模板: 麻花传媒在线观看免费| 日本福利一区二区精品| 国产欧美日韩高清在线不卡| 亚洲人成电影网站 久久影视| 午夜成人精品福利网站在线观看 | 人人狠狠综合久久亚洲爱咲| 国产999精品2卡3卡4卡| 女人与牲口性恔配视频免费| 久久久久久性高| 日韩精品专区在线影院重磅| 中文字幕日韩有码第一页| 久久一日本道色综合久久| 亚洲欧美日韩高清一区二区三区| 国产精品一区二区三区性色| 亚洲夂夂婷婷色拍ww47| 欧美人人妻人人澡人人尤物| 色综合天天综合天天更新| 国产成人精品白浆免费视频试看| 亚洲午夜爱爱香蕉片| 亚欧洲乱码视频一二三区| 欧美肥老太牲交大战| 国产女同疯狂作爱系列| 欧美一进一出抽搐大尺度视频 | 亚洲av产在线精品亚洲第一站| 好吊妞人成视频在线观看| 莱阳市| 久久羞羞色院精品全部免费| 另类 专区 欧美 制服| 仙桃市| 天堂av在线一区二区| 欧美亚洲高清日韩成人| 久久精品国产蜜臀av| 成全影视大全在线观看| 国产精品福利自产拍久久| 国产成人综合在线观看不卡| 无码人妻av免费一区二区三区| 中文字幕乱码一区二区免费| 精品中文人妻在线不卡| 亚洲乱码精品久久久久..| 亚洲欧美中文字幕5发布| 国产精品中文字幕视频|