這個題目主要考察捕獲分組和匹配url的正則寫法,懂不懂markdown的語法並不重要,只需要觀察用例.
首先根據第乙個用例,寫出最初的正則,一共有兩個捕獲分組(紅色部分):
/\[(.+)\]\((.+)\)/ 替換為 $1//匹配情況7/17
第8個用例誤匹配了,是因為使用了非法的協議,我們需要乙個匹配url的正則來替換.+,這個匹配url的正則(紅色部分)就不做講解了:
/\[(.+)\]\((http:\/\/[a-za-z0-9-]*(?:\.[a-za-z-]*)+\/?)\)/ 替換為 $1//匹配情況13/17
倒數第三個用例誤匹配了,是因為開頭的l和後面的標記之間缺少空格,所以我們還需要新增乙個匹配空格的正則,要麼是空格要麼就是字串的開頭(紅色部分),並且匹配到的空格還要捕獲到替換結果中:
/(\s|^)\[(.+)\]\((http:\/\/[a-za-z0-9-]*(?:\.[a-za-z-]*)+\/?)\)/ 替換為 $1$2//
匹配情況15/17
最後乙個用例和上面類似,在字串尾部也需要乙個這樣的限制:
/(\s|^)\[(.+)\]\((http:\/\/[a-za-z0-9-]*(?:\.[a-za-z-]*)+\/?)\)(\s|$)/ 替換為 $1$2$4//
匹配情況16/17
倒數第二個用例誤匹配了,匹配標記的正則改一下,替換原來的.+:
/(\s|^)\[([^+)\]\((http:\/\/[a-za-z0-9-]*(?:\.[a-za-z-]*)+\/?)\)(\s|$)/ 替換為 $1$2$4//
匹配情況17/17
正規表示式周二挑戰賽 第十周
regex tuesday,每週二會出一道正規表示式的題目,本週的題目 這個題目看似是要把一些由各種字元分割的字串替換成逗號分割的csv檔案格式.根據前兩個用例,最先想到的正則是 g 替換為 匹配情況8 17 第3個用例沒有匹配,這也是本題最難的地方了,要確保把引號包圍的字串看成乙個整體,不替換其中...
第九章 正規表示式
正規表示式 我們先回想一下,在沒有正規表示式的年代,我們是怎麼在硬碟上查詢檔案的.肯定會使用 和 字元來幫助查詢您正尋找的檔案。字元匹配檔名中的單個字元,而 則匹配乙個或多個字元。乙個如 data?dat 的模式可以找到下述檔案 data1.dat data2.dat datax.dat datan...
正規表示式(二) 正規表示式的切割
切割 還記得stirng的split的方法嗎.可以按照 空格,豎線 對字串進行切割.正規表示式的切割 是指,我們按照正規表示式的規則對字串來進行一些複雜的切割 比方說現在我想按照多個空格來進行切割 string str zhangsan lisei wangwu string reg s s在這裡代...