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

2021-09-06 06:53:39 字數 942 閱讀 6403

regex-tuesday,每週二會出一道正規表示式的題目,本週的題目

這個題目看似是要把一些由各種字元分割的字串替換成逗號分割的csv檔案格式.

根據前兩個用例,最先想到的正則是:

/ /g   替換為    ,       //

匹配情況8/17

第3個用例沒有匹配,這也是本題最難的地方了,要確保把引號包圍的字串看成乙個整體,不替換其中的空格,沒有什麼好的辦法,只能使用乙個|分支,在新增逗號的同時還得把兩邊的引號去掉:

/ "(.+?)"| /g    替換為     ,$1           //

匹配情況10/17

第4個用例裡面還有單引號:

/ ["'](.+?)["']| /g    替換為   ,$1       //

匹配情況11/17

第8個用例中,分隔符不再只有空格了,還有雙連字元:

/ ["'](.+?)["']| |--+/g  替換為   ,$1     //

匹配情況14/17

倒數第2個和第3個用例中又多了;分割符,和空格放在一起:

/ ["'](.+?)["']|[ ;]+|--+/g  替換為   ,$1     //

匹配情況16/17

倒數第5個用例中又多了,分割符,但沒什麼好辦法處理,因為其他的字段中也有逗號,比如can't,只能用笨辦法列舉出來:

/ ["'](.+?)["']| '|' |[ ;]+|--+/g  替換為   ,$1     //

匹配情況17/17

我寫的實在不怎麼好,有一位國外的同志想了個很巧妙的解法:

/\s("|')(.*?)\1|\w?\s\w?|-/g  替換為   ,$2     //

匹配情況17/17

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

這個題目主要考察捕獲分組和匹配url的正則寫法,懂不懂markdown的語法並不重要,只需要觀察用例.首先根據第乙個用例,寫出最初的正則,一共有兩個捕獲分組 紅色部分 替換為 1 匹配情況7 17 第8個用例誤匹配了,是因為使用了非法的協議,我們需要乙個匹配url的正則來替換.這個匹配url的正則 ...

LeetCode第十題 正規表示式匹配

regular expression matching 問題簡介 給定字串,給定匹配模式,判斷字串是否滿足匹配模式 問題詳解 一共有兩種特殊模式 匹配任何單個字元 匹配前面元素的零個或多個 注 匹配的是整個給定字串,不是部分 舉例 1 輸入 s aa p a 輸出 false 解釋 a 不匹配 aa...

DOM程式設計之十 正規表示式二

2 例項物件的屬性 global regexp 物件是否具有標誌 g。ignorecase regexp 物件是否具有標誌 i。lastindex 乙個整數,標示開始下一次匹配的字元位置。multiline regexp 物件是否具有標誌 m。source 正規表示式的源文字 即模式文字。4,reg...