正規表示式周二挑戰賽 第九周

2022-02-09 02:24:08 字數 917 閱讀 2609

這個題目主要考察捕獲分組和匹配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在這裡代...