Python的正則一例

2021-08-26 01:29:50 字數 690 閱讀 2181

悄悄打入公司內部ued的乙個python愛好者小眾群,前兩天一位牛人發了條訊息:

小的測試題:re.split('(\w+)','test,test,test.')返回什麼結果

一開始看,我倒沒注意w是大寫的,以為是小寫的w代表單詞字元(含下劃線),今天執行一看才發現是大寫的。

在idle跑一下的結果如下:

>>> import re >>> re.split('(\w+)', ' test, test, test.') ['', ' ', 'test', ', ', 'test', ', ', 'test', '.', ''] >>>

看到如上的輸出,我是帶有疑惑的,\w匹配非單詞字元,那麼結果裡為什麼有那麼多非單詞字元?

我都懷疑我對\w的含義是不是記錯了,開啟正則手冊一看,確定我沒記錯之後,我發現了此例中匹配模式包含了括號,對應著正則裡面的(pattern),

而這表示在匹配的同時會獲取匹配,並儲存到匹配結果集中。

恍然。再測:

>>> re.split('(\w+)', ' test, test, test.') ['', ' ', 'test', ', ', 'test', ', ', 'test', '.', ''] >>> re.split('\w+', ' test, test, test.') ['', 'test', 'test', 'test', ''] >>>

正規表示式一例

正規表示式相信不是乙個生話題,不過對於我來說卻是個常用常新的東西。下面是我近日遇到的乙個問題及其解決方法。要求 刪除 中 開頭的注釋 若 前存在無用的空格以及製表符也要刪除 如果注釋是單獨成一行,則保留之,不刪除。分析 可以使用正規表示式找到匹配之上要求的字串並用空格替換之,即達到刪除效果 如上1,...

select exists 的應用一例

當遇到多層exists的時候,事情就變得開始複雜了。我們來看看這個例子吧 假設有三張表 請選出選了所有課程的學生 select 姓名 from 學生表 where not exists 學生缺的學科 select from 課程表 where not exists 學生選的學科 select fro...

演算法優化一例

本文將以排序演算法中的插入排序為例,介紹優化演算法,編制高效程式的方法。人們通常用於排序手中橋牌的方法是一次考慮一張牌,將它插入到已經排序過的牌的適當位置中 時刻讓它們保持有序 在計算機實現中,我們需要將較大的元素移到右邊,為插入的元素準備空間,然後再在空位置上插入該元素。該演算法的通常的乙個實現如...