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...