午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 正則表達式模式匹配字符串基礎知識

正則表達式模式匹配字符串基礎知識

熱門標簽:西藏智能外呼系統代理商 地圖標注教學點 梅縣地圖標注 甘肅醫療外呼系統排名 ai電話機器人搭建 貴港公司如何申請400電話 呼叫系統外呼只能兩次 400電話辦理電話辦理 外呼系統無呼出路由是什么原因

 介紹

      在實際項目中有個功能的實現需要解析一些特定模式的字符串。而在已有的代碼庫中,在已實現的部分功能中,都是使用檢測特定的字符,使用這種方法的缺點是:

  • 邏輯上很容易出錯
  • 很容易漏掉對一些邊界條件的檢查
  • 代碼復雜難以理解、維護
  • 性能差

      看到代碼庫中有一個cpp,整個cpp兩千多行代碼,有個方法里,光解析字符串的就有400余行!一個個字符對比過去,真是不堪入目。而且上面很多注釋都已經過期,很多代碼的書寫風格也各不相同,基本可以判斷是過了很多人手的。

      在這種情況下,基本沒辦法還沿著這條老路走下去,自然而然就想到了使用正則表達式。而我自己在正則表達式方面沒有實際應用的經驗,尤其是對于書寫匹配規則也是一知半解。第一時間就想到從網上找點資料,先大致了解下。但是度娘的結果依舊還是讓人很失望。(當然,如果是想要查找一些比較專業的知識,度娘的結果每次都會讓人心碎,無不都是千篇一律的拷貝。但是通常度娘生活方面的還是可以)后來就放棄度娘的查詢結果,FQ到了外面去找,也找到了一些比較基礎的視頻(需FQ)。

      這篇文章可以說是一個總結,把在書寫正則表達式的匹配字符串方面的基礎知識介紹一下。主要分為以下兩個個部分:

  1. 匹配字符串的基本規則
  2. 正則匹配、查找與替代

本文介紹的正則表達式規則是ECMAScript。使用的編程語言是C++。其他方面的不做介紹。

匹配字符串的基本規則

1. 匹配固定的字符串

regex e("abc");

2. 匹配固定字符串,不區分大小寫

regex e("abc", regex_constants::icase);

3. 匹配固定字符串之外多一個字符,不區分大小寫

regex e("abc.", regex_constants::icase);  // .  Any character except newline. 1個字符

4. 匹配0個或1個字符

regex e("abc?");    // ?  Zero or 1 preceding character. 匹配?前一個字符

5. 匹配0個或多個字符

regex e("abc*");    // *  Zero or more preceding character. 匹配*前一個字符

6. 匹配1個或多個字符

regex e("abc+");    // +  One or more preceding character. 匹配+前一個字符

7. 匹配特定字符串中的字符

regex e("ab[cd]*");    // [...] Any character inside square brackets. 匹配[]內的任意字符

8. 匹配非特定字符串的字符

regex e("ab[^cd]*");    // [...] Any character not inside square brackets. 匹配非[]內的任意字符

9. 匹配特定字符串,且指定數量

regex e("ab[cd]{3}");    // {n}  匹配{}之前任意字符,且字符個數為3個

10. 匹配特定字符串,指定數量范圍

regex e("ab[cd]{3,}");  // {n} 匹配{}之前任意字符,且字符個數為3個或3個以上
regex e("ab[cd]{3,5}");  // {n} 匹配{}之前任意字符,且字符個數為3個以上,5個以下閉區間

11. 匹配規則中的某一個規則

regex e("abc|de[fg]");    // |  匹配|兩邊的任意一個規則

12. 匹配分組

regex e("(abc)de+");    // ()       ()表示一個子分組

13. 匹配子分組

regex e("(abc)de+\\1");  // ()    ()表示一個子分組,而\1表示在此位置匹配第一個分組的內容
regex e("(abc)c(de+)\\2\\1");  // \2 表示的是在此匹配第二個分組的內容

14. 匹配某個字符串開頭

regex e("^abc."); 
// ^ begin of the string 查找以abc開頭的子字符串

15. 匹配某個字符串結尾

regex e("abc.$");
// $ end of the string 查找以abc結尾的子字符串

      以上是最基本的匹配模式的書寫。通常如果要匹配特定的字符,需要使用\進行轉義,比如在匹配字符串中需要匹配".",那么在匹配字符串中應該在特定字符前加上\。出了以上的基本規則,如果還不滿足特定的需要,那么可以參考此鏈接。使用了解基本的匹配模式后,需要使用正則表達式進行匹配、查找或者替代。

正則匹配、查找與替代

      書寫好模式字符串后,需要將待匹配的字符串和模式字符串進行一定規則的匹配。包括三種方式:匹配(regex_match)、查找(regex_search)、替換(regex_replace)。

      匹配很簡單,直接將待匹配字符串和模式字符串傳入到regex_match中,返回一個bool量來指明待匹配的字符串是否滿足模式字符串的規則。匹配整個str字符串。

bool match = regex_match(str, e);
// 匹配整個字符串str

      查找是在整個字符串中找到和滿足模式字符串的子字符串。也就是只要str中存在滿足模式字符串就會返回true。

bool match = regex_search(str, e);
// 查找字符串str中匹配e規則的子字符串

      但是很多情況下,光是返回一個是否匹配的bool量是不夠的,我們需要拿到匹配的子字符串。那么就需要在模式字符串中將匹配字符串分組,參考【匹配字符串的基本規則】第12點。再將smatch傳入到regex_search中,就可以獲得滿足每個子分組的字符串。

smatch m;
bool found = regex_search(str, m, e);
for (int n = 0; n  m.size(); ++n)
  {
    cout  "m["  n  "].str()="  m[n].str()  endl;
  }

    替換也是基于模式字符串在分組情況下完成的。

cout  regex_replace(str, e, "$1 is on $2");

      此時,會在滿足分組1和分組2的字符串中間加上“ is on”。

      以上三個函數有很多版本的重載,可以滿足不同情況下的需求。

實戰

      要求:找出滿足sectionA("sectionB")或者sectionA ("sectionB")的模式字符串。且分離出sectionA、sectionB。sectionA和sectionB不會出現數字,字符可大小寫,至少有一個字符。

      分析:根據要求,大致可分為兩個部分,也就是sectionA和sectionaB。這是就需要用到分組。

第一步:寫出滿足section情況的模式字符串

[a-zA-Z]+

第二步:在sectionA和sectionB中可能會出現空格。暫且假設至多有1個空格

\\s?

將以上兩個情況組合起來,也就是能滿足我們需求的模式字符串。但是如何組織才能讓其分為兩組呢?

[a-zA-Z]+\\s[a-zA-Z]+

上面這種寫法肯定不對的,根據分組規則,需要將分組以()進行區分

regex e("([a-zA-Z]+)\\s?\\(\"([a-zA-Z]+)\"\\)");

      此時,在\\s?后面的\\(\"是為了滿足sectionB外層的引號和括號進行的轉義。

      以上完成后,可先用regex_match進行匹配,如果匹配,那么繼續使用regex_search對字符串進行查找

if (regex_match(str, e))
{
 smatch m;
 auto found = regex_search(str, m, e);
 for (int n = 0; n  m.size(); ++n)
 {
 cout  "m["  n  "].str()="  m[n].str()  endl;
 }
}
else
{
 cout  "Not matched"  endl;
}

      對象m數組的第一個字符串是滿足需求的整個子串,接下來才是滿足分組1、分組2的子串。

總結

以上所述是小編給大家介紹的正則表達式模式匹配字符串基礎知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • 正則表達式匹配不包含某些字符串的技巧
  • js 正則表達式學習筆記之匹配字符串
  • 正則匹配密碼只能是數字和字母組合字符串功能【php與js實現】
  • 請教一個正則表達式,匹配所有Html標簽外部的指定字符串
  • 使用正則表達式匹配[***]樣式的字符串
  • 如何使用正則匹配最后一個字符串詳解

標簽:涼山 海口 大興安嶺 常州 泰安 哈密 本溪 湖州

巨人網絡通訊聲明:本文標題《正則表達式模式匹配字符串基礎知識》,本文關鍵詞  正則,表達式,模式,匹配,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式模式匹配字符串基礎知識》相關的同類信息!
  • 本頁收集關于正則表達式模式匹配字符串基礎知識的相關信息資訊供網民參考!
  • 推薦文章
    97在线电影| 国产aⅴ综合色| 久久久精品三级| 欧美激情网友自拍| 亚洲少妇屁股交4| 无码人妻丰满熟妇区bbbbxxxx| av动漫在线播放| 久久视频中文字幕| 亚洲精品自拍动漫在线| 中文在线字幕av| 天天色综合社区| 亚洲一区美女视频在线观看免费| 555www色欧美视频| 国产九九视频一区二区三区| 人人爽人人爽人人片| 黄色www在线观看| 欧美极品美女视频网站在线观看免费 | 国产无码精品视频| 黄色大片在线免费看| 国产ts人妖一区二区三区| 欧美另类一区二区三区| 国产一区二区美女| 国产福利拍拍拍| 少妇一级淫免费播放| 2019国产精品视频| 伊人久久久久久久久久久久久| 国产精品传媒在线| 视频二区在线观看| 女同久久另类69精品国产| 欧美午夜小视频| 成人精品aaaa网站| 亚洲品质视频自拍网| 欧美 日韩 国产 在线| 青青草精品视频在线观看| 国产 高清 精品 在线 a| 国产精品人人人人| 久久亚洲精品中文字幕冲田杏梨 | 久久在线免费视频| 色综合天天综合色综合av | 国产精品99久久久久久www| 91精品国产免费| 国产午夜久久久久| 国产 日韩 欧美 综合| 亚洲天堂精品一区| 国产成人手机视频| 欧美日韩精品不卡| 9.1国产丝袜在线观看| 精品美女一区二区三区| 自拍视频在线观看一区二区| 免费xxxx性欧美18vr| 中日韩精品视频在线观看| 国产精品二区视频| 2021狠狠干| 国产综合香蕉五月婷在线| 伊人久久久久久久久久| 色激情天天射综合网| 91免费视频大全| 欧美一区二区三区激情| 国产午夜福利精品| 大桥未久恸哭の女教师| 国产精品网站免费| 鲁丝片一区二区三区| 97视频免费在线看| 亚洲美女喷白浆| 日韩欧美精品网址| 中文字幕乱码亚洲精品一区| 日韩av二区在线播放| 无码视频在线观看| 91制片厂在线| wwwxxx色| 97超碰青青草| 亚洲日本精品| 99影视tv| 日本高清视频精品| 丝袜情趣国产精品| 日韩欧美三级在线| 精品人伦一区二区三区蜜桃网站| www久久精品| 日本在线不卡一区| 国产精品一区二区黑人巨大| 国产精品成人免费一区二区视频| 小毛片在线观看| 亚洲国产精品毛片av不卡在线| 日韩中文一区二区三区| 99国产盗摄| 青青久久av北条麻妃海外网| 日韩中文字幕在线播放| 精品日韩99亚洲| 一本色道综合亚洲| 黑人乱码一区二区三区av| 欧美人妻一区二区三区| 亚洲欧美激情一区二区三区| 女性隐私黄www网站视频| 在线丝袜欧美日韩制服| 精品国产91亚洲一区二区三区www| 日本国产高清不卡| 欧美国产日本高清在线| 一道本无吗dⅴd在线播放一区| 91精品国产欧美日韩| 好吊成人免视频| 亚洲人被黑人高潮完整版| 99久久精品免费| 日本欧美在线看| 亚洲第一页在线观看| 伊人22222| 国产黄色免费观看| 成人免费精品动漫网站| 无码国产69精品久久久久同性| 中文字幕第六页| 韩国视频一区二区三区| 女性女同性aⅴ免费观女性恋| 中文字幕黄色大片| 亚洲aⅴ天堂av在线电影软件| 国产一区二区三区高清| 69174成人网| 国产精品日韩欧美大师| 欧美一级免费看| 欧美日本亚洲视频| 久久精品免费电影| 中文字幕在线精品| 亚洲毛片在线观看.| 精品国产伦理网| 欧美一级国产精品| 69堂成人精品免费视频| 欧美日韩小视频| 欧美三级中文字| 在线亚洲精品福利网址导航| 日韩欧美精品中文字幕| 欧美日韩在线一区| 黑人巨大精品欧美一区二区免费| 亚洲成在人线免费| 亚洲18色成人| 午夜一区二区三区在线观看| 亚洲一级片在线观看| 亚洲一区在线观看网站| 亚洲一区欧美一区| 亚洲福利一区二区| 欧美日韩一区二区三区| 色悠久久久久综合欧美99| 天天免费综合色| 欧美性猛交xxxx乱大交蜜桃| 色av成人天堂桃色av| 欧美日韩免费在线| 在线免费观看一区| 欧美精品久久久久久久多人混战| 69精品人人人人| 91精品黄色片免费大全| 欧美成人bangbros| 日韩成人中文电影| 亚洲香蕉在线观看| 久久精品国产欧美亚洲人人爽| 欧美自拍偷拍一区| 中文字幕一区二区三区人妻不卡| 国产91在线播放九色快色| 91精品国产综合久久小美女| 精品久久久久久中文字幕一区奶水| 五月激情综合色| 日本高清视频一区二区| 欧美另类z0zxhd电影| 日韩欧美一级二级三级久久久| 欧美r级电影在线观看| 亚洲精品动漫久久久久| 在线电影中文日韩| 欧美国产精品日韩| 国产精品久久一| av资源站久久亚洲| 欧洲精品在线一区| 久久久久久久久久伊人| 亚洲乱码国产一区三区| 性生活在线视频| 色婷婷在线影院| 久久久综合久久久| 91精品国产乱码久久久久| 天天摸夜夜添狠狠添婷婷| 极品美女销魂一区二区三区免费| 成a人片亚洲日本久久| 国产精品久久久久久久岛一牛影视| 一区二区欧美精品| 欧美日韩aaa| 亚洲欧美中文字幕在线一区| 欧美激情精品久久久久久大尺度 | 国产区精品在线观看| 国产经典一区二区三区| 日韩欧美三级一区二区| 可以在线看的av网站| 岛国av免费在线| 日本激情小视频| 日本熟妇毛耸耸xxxxxx| 国产欧美久久久| 久久精品国产色蜜蜜麻豆| 91一区二区在线| 亚洲五码中文字幕| 欧美一级生活片| 久久精品久久久久电影| 国产精品美女免费| 欧美激情第一页在线观看| 妞干网在线观看视频| 少妇欧美激情一区二区三区| 久久免费手机视频| 中文字幕男人天堂| 精品一区二区在线免费观看| 国产精品午夜春色av| 色久优优欧美色久优优| 亚洲欧洲在线看| 国产精品吹潮在线观看| 欧美精品成人一区二区在线观看 | 国产在线观看免费一区| 中文字幕亚洲一区二区av在线| 91高清视频在线| 国产一区二区三区免费视频| 91国内揄拍国内精品对白| 韩日午夜在线资源一区二区 | 色香蕉在线视频| 97久久精品人人做人人爽50路| 亚洲成人1区2区| 亚洲经典中文字幕| 欧美日韩国产综合视频在线观看中文 | 久久久久久久久久久久久夜| 色香色香欲天天天影视综合网| 亚洲精品suv精品一区二区| 2018日韩中文字幕| 欧美动漫一区二区| 一道本视频在线观看| 国产3级在线观看| 国产xxxxxx| 2024亚洲男人天堂| 精品无码一区二区三区的天堂| 国产精品久久久久久久久久小说| 久久久久久一区二区| 亚洲永久免费观看| 懂色中文一区二区在线播放| 51精品国产人成在线观看| 久久婷婷亚洲| 成人永久免费| 中文字幕中文字幕中文字幕亚洲无线| www.色.com| 91精品国产欧美日韩| 亚洲激情 欧美| 国产九九九视频| 久久久久无码国产精品不卡| 成人无码一区二区三区| 国产视频一区二区在线| 91精品国产综合久久香蕉的特点| 九九热r在线视频精品| 国产在线精品一区二区三区| 午夜精品在线免费观看| 麻豆疯狂做受xxxx高潮视频| 丝袜脚交一区二区| 亚洲综合成人网| 亚洲视频免费一区| 成人影片在线播放| 在线黄色免费观看| 国产手机在线视频| 国内精品伊人久久久久影院对白| 亚洲成av人片一区二区三区| 在线精品播放av| 精品无人区一区二区三区| 手机看片一级片| 国产精品va无码一区二区三区| 国产成人综合自拍| 欧美三级日本三级少妇99| 97精品在线观看| 日韩人妻一区二区三区蜜桃视频| 国产精品九九九九九| 亚洲欧美黄色片| 亚洲女爱视频在线| 中文字幕在线日韩| 欧美午夜精品久久久久久蜜| 亚洲香蕉中文网| 精品国产无码一区二区| 国产精品二三区| 一区二区三区视频观看| 蜜桃精品久久久久久久免费影院| 337p日本欧洲亚洲大胆张筱雨| 在线播放精品视频| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产欧美在线成人app| 99久热re在线精品996热视频| 天天摸天天舔天天操| 成人黄色免费网| 中文字幕精品在线不卡| 国产一区二区三区精品久久久 | 51色欧美片视频在线观看| 天天做天天爱天天高潮| 超碰人人干人人| 九九热免费在线| 欧美视频久久久| 亚洲图片欧美色图| 久久久在线免费观看| 99久久久精品视频| 久久精品国产亚洲av高清色欲| 成人动漫一区二区三区| 欧美成人一级视频| 国产高清在线精品一区二区三区| 久久久久久久久久久影视| 懂色av成人一区二区三区| 精品毛片三在线观看| 日本aⅴ大伊香蕉精品视频| 日本成年人网址| 中文字幕永久在线视频| 亚洲美女淫视频| 久久久日本电影| 白嫩少妇丰满一区二区| 中文字幕在线视频免费| 国产精品三级电影| 好吊妞视频一区二区三区| 一区二区三区电影| 久久久97精品| 天天综合天天做天天综合| 日韩成人伦理电影在线观看| 992在线观看| 亚欧无线一线二线三线区别| 国产mv久久久| 亚洲国产97在线精品一区| 91浏览器在线视频| 69xxxx国产| 日韩欧美色视频| 一区二区不卡在线观看| 日韩高清免费观看| 国内成人自拍视频| www.99re7| 国产亚洲综合视频| 国产精品久久久久久久7电影| 午夜精品福利久久久| 99国产精品久久久久久久成人| avove在线观看| 精品女同一区二区| 国内精品国产三级国产a久久| 中文字幕在线视频精品| 91在线精品播放| 午夜精品久久久久久久99黑人| 一区二区三区电影| 日本熟妇成熟毛茸茸| 自拍偷拍欧美精品| 欧洲一区二区视频| 伊人av在线播放| 免费的成人av| 日韩av在线免费看| 国产又粗又长又爽视频| 日韩xxx视频| 欧美性猛交xxxx富婆| 不卡日韩av| 午夜剧场免费在线观看| 国产情人综合久久777777| 久久免费福利视频| 在线观看免费视频污| 久久99精品久久久久久国产越南 | 亚洲一区二区三区自拍| 国产精品视频一区二区三区四| 在线xxxxx| 国产成人精品综合在线观看| 久久精品国产视频| 天天爱天天操天天干| 奇米色一区二区三区四区| 亚洲欧美福利视频| 国产精品沙发午睡系列| 北条麻妃视频在线| 亚洲国产一二三区| 91精品国产高清一区二区三区蜜臀 | 亚洲自拍欧美色图| 午夜精产品一区二区在线观看的| 成人动漫av在线| 欧美激情女人20p| 婷婷五月精品中文字幕| 成人免费不卡视频| 久久男人的天堂| 中国黄色片视频| 99re热视频这里只精品| 国模精品一区二区三区色天香| 极品白嫩少妇无套内谢| 成人美女在线视频| 97视频在线观看免费| 超碰97人人干| 国产日韩精品视频一区| 国产精品久久色| 精品国产视频在线观看| 亚洲午夜久久久久| 黄色99视频| 日日夜夜狠狠操| 欧美丰满嫩嫩电影| 香港三级日本三级a视频| www.热久久| 亚洲精品一区在线观看香蕉| 国产精彩免费视频| 极品尤物av久久免费看| 欧美激情视频三区| 37p粉嫩大胆色噜噜噜| 国产精品久99| 99蜜桃在线观看免费视频网站| 日韩av一二三区| 欧美午夜视频网站| 日本大胆人体视频| 免费在线视频一区| 久久久久成人精品| 精品欧美一区二区久久久| 1区2区3区欧美| 精品久久蜜桃| 在线观看日韩一区二区| 欧美精品一区二区久久久| 欧美两根一起进3p做受视频| 国产剧情一区二区三区| 欧美性一区二区三区| 91在线无精精品白丝| 亚洲一区二区三区四区在线| 欧美一区二区在线视频观看| 国产99999| 在线国产精品播放| 少妇被狂c下部羞羞漫画| 国产精品剧情在线亚洲| 国产手机精品在线|