python正則 空格 python正則

2021-10-11 13:14:32 字數 1858 閱讀 5660

\d 匹配乙個數字

\w 匹配乙個字母或數字

. 匹配任意字元

* 表示任意個字元(包括0個),

+ 表示至少乙個字元

? 表示0個或1個字元

^ 表示行的開頭

$ 表示行的結束

\s 匹配乙個空格(也包括tab等空白符)

\s+ 表示至少有乙個空格

| a|b可以匹配a或b,所以(p|p)ython可以匹配'python'或者'python'。

表示n個字元

表示n-m個字元

- 是特殊字元,在正規表示式中,要用'\'轉義

[a-za-z\_][0-9a-za-z\_]更精確地限制了變數的長度是1-20個字元(前面1個字元+後面最多19個字元)。

s = 'abc\\-001' #python的字串#對應的正規表示式字串變成:#'abc\-001'

使用python的r字首,就不用考慮轉義的問題了:

s = r'abc\-001' #python的字串#對應的正規表示式字串不變:#'abc\-001'

re.match(r'^\d\-\d$', '010-12345')

切分字串

用正規表示式切分字串比用固定的字元更靈活,請看正常的切分**:

>>> 'a b c'.split(' ')

['a', 'b', '', '', 'c']

識別連續的空格,用正規表示式:

>>> re.split(r'\s+', 'a b c')

['a', 'b', 'c']

無論多少個空格都可以正常分割:

>>> re.split(r'[\s\,]+', 'a,b, c d')

['a', 'b', 'c', 'd']

再加入;試試:

>>> re.split(r'[\s\,\;]+', 'a,b;; c d')

['a', 'b', 'c', 'd']

提取子串:

>>> m = re.match(r'^(\d)-(\d)$', '010-12345')>>>m<_sre.sre_match object span="(0," match="010-12345">

>>>m.group(0)'010-12345'

>>> m.group(1)'010'

>>> m.group(2)'12345'

注意到group(0)永遠是原始字串,group(1)、group(2)……表示第1、2、……個子串。

>>> t = '19:05:30'

>>> m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)>>>m.groups()

('19', '05', '30')

編譯在python中使用正規表示式時,re模組內部會幹兩件事情:

編譯正規表示式,如果正規表示式的字串本身不合法,會報錯;

用編譯後的正規表示式去匹配字串。

如果乙個正規表示式要重複使用幾千次,出於效率的考慮,我們可以預編譯該正規表示式,接下來重複使用時就不需要編譯這個步驟了,直接匹配:

>>> importre#編譯:

>>> re_telephone = re.compile(r'^(\d)-(\d)$')#使用:

>>> re_telephone.match('010-12345').groups()

('010', '12345')>>> re_telephone.match('010-8086').groups()

('010', '8086')

Erlang 正則過濾空格 包括全形空格

之前在驗證玩家起名字的時候,首先先去掉字串首尾空格,寫了乙個簡單的trim string trim string str when is binary str trim string str,binary trim string str when is list str trim string st...

正則規範空格問題

需求 規範段落中的空格,英文與中文間,英文與數字間,漢字與漢字,數字與數字,英文與英文間的空格不做處理。例如 enligsh 中文 123中文,abc234 要實現 english 中文123中文,abc 234 解決方案 public string matchkg string source s ...

php 正則去掉 空格 與

1 php 正則去掉 空格 str factory supply high quality maitake mushroom extract powder bulk product name uuu preg replace s xc2 xa0 str echo str replace uuu 2 ...