婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 亂象,印跡 正則學習問答

亂象,印跡 正則學習問答

熱門標簽:浙江營銷外呼系統有哪些 自己做的電銷機器人 地圖標注店鋪地圖標注酒店 哈爾濱公司外呼系統代理 遼寧秒客來電話機器人 山東外呼系統聯系方式 惠安地圖標注 淄博市張店區地圖標注 上海銷售電銷機器人軟件

最近有幸在開源中國和51CTO兩家網站作為嘉賓參與了于正則表達式的專題問答。在問答過程中,我收集到學習正則表達式過程中的某些普遍問題,在這里專門花一點篇幅來回答

正則表達式是難學的,這不存在疑義。但是我認為,難點也只在語法方面。正則表達式已經有年頭了,它(的語法)誕生于上世紀七十年代。那是個怎樣的情景?舉個簡單的例子吧,Unix下的usrdev等名字,就是那時留傳下來的,現在已經有很多人詬病了,usr不是user,dev不是device,難學,也難記。經過這些年的飛速發展,當年的很多問題已經被包裝得美輪美奐,如今的用戶可能更習慣直接點擊“用戶目錄”、“驅動器”之類的圖標,再也不用為那些不規則的簡短名字發愁。但是不幸的是,一直以來正則表達式的語法卻沒有太多的變化,甚至后續增加的功能,也沿襲了之前的語法風格,在編程語言日漸人性化的今天,它自然顯得非常難懂了。今天的開發人員可能更習慣Regex.CharRange(‘a', ‘z')這樣的寫法,而不習慣[a-z];遇到(?![a-z])這樣的結構就更是抓瞎,除非轉為Regex.CheckRight(Regex.CharRange(‘a', ‘z'))的寫法。

不過,換一個角度來看,兩者其實是一回事,只是表現形式不同,一個類似要訣,一個類似大白話。如果我們能在頭腦里構建出從要訣到大白話的轉換,正則表達式就簡單了許多,甚至可以說就是模塊的拼接。比如支付寶的流水號為18或26位數字,用正則表達式匹配,就是^([0-9]{18}|[0-9]{26})$,或者^[0-9]{18}([0-9]{8})?$。其中的邏輯很簡單:^用來鎖定開頭,$用來鎖定結尾,[0-9]匹配數字字符,([0-9]{18}|[0-9]{26})表示兩個并列的選項,即數字字符串長度為18位或26位,而[0-9]{18}([0-9]{8})?表示至少需要出現18位的數字字符串,在這之后可能還有一個8位的數字字符串(所以總長度是26位)。一般的正則表達式應用,就是這么簡單。

如果你覺得上面說的沒錯,那么學習正則表達式的難題就只剩下了選擇得當的方法。我們學習編程語言時,都強調不能只看書,要動手寫程序,甚至最好的辦法是把書上的例子親自輸入運行一遍,這樣才算真正學會了。但在許多人眼里,正則表達式或許算不上編程語言,所以學習是點到即止,甚至是滿足于從網絡上抄一些現成的表達式。所以,常見的問題之一是“有沒有什么學習的捷徑”,很不幸,答案是沒有——既然拷貝他人的代碼不能學會編程,抄閱現成的表達式、隨便翻幾篇文檔,當然也學不會正則。不過也有幸運的消息,真正學會正則表達式并不需要花太長的時間。

以我的經驗,學習正則表達式,真正要做的是深入理解常用功能:字符組、多選分支、匹配模式、環視。可以說,弄明白了這幾點,80%的正則問題都可以解決。但是要弄明白這幾點,就需要專門的學習:字符組是解決什么問題的,它是怎么使用的?多選分支是解決什么問題的,它是怎么使用的?應當抽一些時間專門學習、思考;這些都弄明白了,再研究解決復雜問題的表達式是怎么構成的。如果你可以每天抽1-2小時專門學習,兩周內就會有明顯收效,一個月幾乎就可以修煉到相當水平。而且,以我的經驗,在學習新的編程語言時,不但要把書上的例子都親自輸入運行一遍,更要自己動手去改一改示例代碼,看看會出現什么現象,再想想為什么會這樣。如果你在學習正則表達式時也做到這一點,必然能夠事半功倍。

如果你真正理解了這些常用功能,對它們的價值和使用有清晰的概念,那么另一個麻煩也就迎刃而解了——不同語言的正則表達式不同,如何解決?雖然不同語言中的正則表達式規定各有不同,但背后的思想是統一的,不同的只是表現形式,或者說概念的落地方式。好處在于,編程語言的文檔不會詳細講解什么是字符組,什么是多選分支,但會詳細告訴你字符組在本語言中是如何表示的,多選分支又是如何表示的(不信你可以在這些文檔中搜索character class或者alternation)。所以如果你的腦子足夠清楚,即便不確定最終的表達式如何寫,也只需要查文檔就可以解決。舉個例子,匹配空白字符的字符組\s,在Java字符串中要寫作\\s,因為\s并不是Java字符串中的一個合法轉義序列,所以之前還必須有\來轉義\;在PHP中可以直接寫作\s,因為PHP處理字符串時會把無法識別的轉義序列原封不動地保存下去;在Unix下的某些工具中,必須寫作[[:space:]],這是Perl風格的\s在POSIX規范中的表示法。看起來比較麻煩,也僅此而已,因為我們知道,這里需要用到的,就是“匹配空白字符的字符組”。

以上寫了這么多,可能有人會說:正則表達式這東西,不登大雅之堂,沒必要花那么多精力。或許正是這種觀點,形成了“不認真學習正則表達式”思想根源。幸運的是,這個問題其實很好想明白,因為很多事情都是這個道理。比如寫文章,我們不要求人人都是作家,但是人人都有可能在需要的時候寫出幾篇拿得出手的正經文章,“不是作家”并不是“需要時寫不出正經文章”的理由。為了能在需要的時候寫出正經文章,就必須專門抽出時間來學習和練習寫作。正則表達式的學習,其實也是這個道理。

這種說法可以說服一些人,但還有一些人是說服不了的。同時據我觀察,那些不能被說服的人,似乎也沒有花太多精力在其它“正事”上,反而會不時為正則表達式所困擾。與此相反的是,真正有職業素質的程序員,就像the Productive Programmer中說的那樣,會愿意花2小時寫出一個正則表達式,為以后節省無窮無盡的時間。當然,以上說的這一切的前提,都是能端正學習正則表達式,或者說學習有價值技能的的態度。做軟件的人大都讀過布魯克斯的名文《沒有銀彈》,所以這里不妨借用他的話說,正則表達式的學習,也不存在銀彈。

本文由Yurii原創,轉載請注明來源: 亂象,印跡

標簽:宣城 泰州 長沙 綿陽 無錫 銅川 重慶 西安

巨人網絡通訊聲明:本文標題《亂象,印跡 正則學習問答》,本文關鍵詞  亂象,印跡,正則,學習,問答,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《亂象,印跡 正則學習問答》相關的同類信息!
  • 本頁收集關于亂象,印跡 正則學習問答的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    视频在线观看一区| 一区二区不卡在线播放 | 91精品免费在线观看| 亚洲日本在线天堂| 岛国精品一区二区| 久久久亚洲精华液精华液精华液| 日韩av网站免费在线| 欧美亚洲一区二区三区四区| 亚洲图片激情小说| 91在线国内视频| 亚洲欧洲精品一区二区三区| 99热这里都是精品| 亚洲欧洲精品一区二区三区| 色偷偷一区二区三区| 久久久精品欧美丰满| 欧美日韩日日摸| 久久91精品国产91久久小草| 天堂在线一区二区| 欧美性大战久久| 亚洲精品精品亚洲| 色拍拍在线精品视频8848| 亚洲欧美日韩精品久久久久| 91在线视频播放地址| 亚洲欧美日韩国产一区二区三区| 99久久婷婷国产综合精品| 亚洲视频在线观看一区| 91麻豆视频网站| 一个色综合av| 91精品午夜视频| 国产一区二区三区久久久| 久久免费电影网| 成人av动漫在线| 亚洲欧美色图小说| 欧美午夜电影网| 老司机精品视频在线| 国产日韩综合av| 色哟哟国产精品| 久久99精品国产麻豆婷婷洗澡| 久久久亚洲高清| 一本一道久久a久久精品| 日韩福利视频网| 国产欧美日本一区二区三区| 欧美专区亚洲专区| 精品一区二区免费看| 亚洲欧美在线观看| 666欧美在线视频| 成人免费va视频| 偷拍与自拍一区| 亚洲国产经典视频| 欧美精品亚洲二区| 不卡一区二区中文字幕| 日韩主播视频在线| 中文字幕乱码日本亚洲一区二区| 欧美午夜精品一区二区蜜桃| 国产精品一区二区久激情瑜伽| 亚洲黄色性网站| 国产亚洲福利社区一区| 欧美理论片在线| av动漫一区二区| 免费在线观看一区二区三区| 欧美国产在线观看| 日韩一区二区免费高清| 色综合天天做天天爱| 麻豆精品视频在线| 亚洲精品国产精华液| 久久色视频免费观看| 欧美日韩一区二区在线观看视频 | 国产欧美视频一区二区| 在线亚洲人成电影网站色www| 美国欧美日韩国产在线播放 | 精品动漫一区二区三区在线观看| 91视频在线观看| 国产一区二区日韩精品| 日本不卡高清视频| 亚洲欧美日韩电影| 国产日韩欧美激情| 精品国产乱子伦一区| 91精品婷婷国产综合久久竹菊| 欧美自拍丝袜亚洲| 99久久亚洲一区二区三区青草 | 国产综合一区二区| 亚洲444eee在线观看| 亚洲欧美乱综合| 国产精品久久综合| 国产欧美视频一区二区| 久久―日本道色综合久久| 欧美一区二区三区在线电影 | 在线精品国精品国产尤物884a| 国产成人亚洲综合a∨婷婷| 美女mm1313爽爽久久久蜜臀| 亚洲高清不卡在线| 亚洲精品欧美综合四区| 亚洲乱码中文字幕| 亚洲黄色小说网站| 一区二区三区在线观看动漫| 亚洲精品菠萝久久久久久久| 亚洲欧美一区二区三区极速播放| 国产精品九色蝌蚪自拍| 国产精品看片你懂得| 国产精品天美传媒| 国产精品伦一区二区三级视频| 国产清纯白嫩初高生在线观看91| wwwwxxxxx欧美| 久久久精品欧美丰满| 国产日韩欧美制服另类| 国产精品久久久久久久久免费丝袜| 国产欧美精品一区二区色综合 | 久久久久国产成人精品亚洲午夜 | 欧美一区二区三区公司| 91在线精品一区二区| 99久免费精品视频在线观看| 91在线播放网址| 久久理论电影网| 天堂一区二区在线| 亚洲精品欧美专区| 亚洲免费在线观看| 亚洲成人自拍网| 奇米四色…亚洲| 九九国产精品视频| 国产xxx精品视频大全| 不卡的av电影| 欧美综合视频在线观看| 69堂亚洲精品首页| 久久人人超碰精品| 亚洲日本中文字幕区| 亚洲成av人**亚洲成av**| 日日嗨av一区二区三区四区| 国内精品伊人久久久久av影院 | 日本精品视频一区二区| 99亚偷拍自图区亚洲| 色哟哟欧美精品| 91精品国产91久久久久久最新毛片 | 久久精品一二三| 国产精品久久久久桃色tv| 亚洲精选视频在线| 美女视频一区在线观看| 国产成人精品影视| 91精品办公室少妇高潮对白| 欧美一级一区二区| 国产精品美女久久久久久久| 精品久久人人做人人爽| 自拍偷拍亚洲激情| 日韩av在线免费观看不卡| 国产乱码字幕精品高清av| 色综合久久天天综合网| 欧美一级一级性生活免费录像| 中文字幕不卡三区| 日韩电影在线一区二区三区| 成人一区在线观看| 欧美精品自拍偷拍| 一区在线播放视频| 久久国内精品视频| 色噜噜狠狠成人网p站| 欧美精品一区二区高清在线观看| 亚洲摸摸操操av| 久久国产精品无码网站| 色噜噜狠狠成人中文综合| 26uuu国产电影一区二区| 亚洲国产日韩一级| 99re成人在线| 久久婷婷成人综合色| 亚洲444eee在线观看| 91丨九色丨蝌蚪丨老版| 久久久九九九九| 久久国产精品无码网站| 欧美三级电影一区| 成人欧美一区二区三区在线播放| 韩国欧美国产1区| 欧美精品乱码久久久久久| 亚洲欧美一区二区三区极速播放| 国产风韵犹存在线视精品| 日韩欧美久久一区| 亚洲自拍偷拍九九九| 成人福利视频网站| 久久青草欧美一区二区三区| 日本不卡123| 欧美男人的天堂一二区| 亚洲伊人伊色伊影伊综合网| 91欧美一区二区| 国产精品久久久久影院| 国产在线麻豆精品观看| 91麻豆精品国产91久久久使用方法 | 欧美电视剧在线观看完整版| 精品国产亚洲在线| 免费av成人在线| 欧美三级中文字| 亚洲在线视频网站| 色噜噜狠狠色综合中国| 亚洲欧洲av另类| 青青草国产成人99久久| 国产精品视频观看| 久久精品夜色噜噜亚洲aⅴ| 国产精品一区二区你懂的| 精品国产污污免费网站入口| 美女视频一区在线观看| 2021中文字幕一区亚洲| 免费的国产精品| 欧美国产成人精品| 不卡av在线网| 老汉av免费一区二区三区 |