正規表示式

2021-09-02 14:23:06 字數 1176 閱讀 2919

編寫變數命名規則

import re

names = ["name1", "_name", "2_name", "__name__"]

for name in names:

ret = re.match("[a-za-z_]+[\w]*",name)

if ret:

print("變數名 %s 符合要求" % ret.group())

else:

print("變數名 %s 非法" % name)

執行結果:```

變數名 name1 符合要求

變數名 _name 符合要求

變數名 2_name 非法

變數名name符合要求

正規表示式中的單個字元匹配

字元功能

.匹配任意1個字元(除了\n)

[ ]匹配[ ]中列舉的字元

\d匹配數字,即0-9

\d匹配非數字,即不是數字

\s匹配空白,即 空格,tab鍵

\s匹配非空白

\w匹配單詞字元,即a-z、a-z、0-9、_

\w匹配非單詞字元

正規表示式中多個字元匹配

字元功能

*匹配前乙個字元出現0次或者無限次,即可有可無

+匹配前乙個字元出現1次或者無限次,即至少有1次

?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有

匹配前乙個字元出現m次

匹配前乙個字元出現從m到n次

貪婪與非貪婪

python中數量詞「+」,「*」,「?」,"",""都是貪婪的,都會盡可能多的匹配多的字元,非貪婪盡可能的匹配少的字元。在數量詞後邊加「?」,可以將貪婪改變為非貪婪。

貪婪舉例:

import re

>>> s="this is a number 234-235-22-423"

>>> r=re.match(".+(\d+-\d+-\d+-\d+)",s)

>>> r.group(1)

'4-235-22-423'

>>> r=re.match(".+?(\d+-\d+-\d+-\d+)",s)

>>> r.group(1)

'234-235-22-423'

>>>

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...