正則表達(dá)式作用
正則表達(dá)式是將復(fù)雜的字符串進(jìn)行信息過濾,找到我們想到的信息,同時(shí)計(jì)算機(jī)的高效率運(yùn)行能夠減輕我們的手工操作負(fù)擔(dān)提高準(zhǔn)確度。
正則表達(dá)式是一個(gè)特殊的字符序列,能幫助我們方便的檢查一個(gè)字符串是否與某種模式匹配。
Python自1.5版本起增加了re 模塊,提供 Perl 風(fēng)格的正則表達(dá)式模式。
re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。
re.match
re.match 嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none。

匹配單個(gè)字符
| 字符 | 功能 |
|---|---|
| . | 匹配任意1個(gè)字符(除了\n) |
| [ ] | 匹配[ ]中列舉的字符 |
| \d | 匹配數(shù)字,即0-9 |
| \D | 匹配非數(shù)字,即不是數(shù)字 |
| \s | 匹配空白,即 空格,tab鍵 |
| \S | 匹配非空白 |
| \w | 匹配單詞字符,即a-z、A-Z、0-9、_ |
| \W | 匹配非單詞字符 |
"."匹配任意字符(除/n)
# -*- coding: utf-8 -*-
# @Time : 2019/10/4 13:32
# @Author : 幣行者
# @Email : xypip@qq.com
# @File : test4.py
import re
ret = re.match(".", "x")
print(ret.group())
ret = re.match("xing..e", "xingzhe")
print(ret.group())
匹配[ ]中列舉的字符
ret = re.match("[hH]ello", "hello XingZhe")
print(ret.group())
ret = re.match("[hH]ello", "Hello XingZhe")
print(ret.group())
匹配數(shù)字
ret = re.match("行者有\(zhòng)d個(gè)比特幣", "行者有1個(gè)比特幣,富的一匹")
print(ret.group())
ret = re.match("行者有\(zhòng)d個(gè)比特幣", "行者有2個(gè)比特幣,富的一匹")
print(ret.group())
ret = re.match("行者有\(zhòng)d個(gè)比特幣", "行者有3個(gè)比特幣,富的一匹")
print(ret.group())
匹配空白
ret = re.match("hello\sworld", "hello world!")
匹配多個(gè)字符
| 字符 | 功能 |
|---|---|
| * | 匹配前一個(gè)字符出現(xiàn)0次或者無限次,即可有可無 |
| + | 匹配前一個(gè)字符出現(xiàn)1次或者無限次,即至少有1次 |
| ? | 匹配前一個(gè)字符出現(xiàn)1次或者0次,即要么有1次,要么沒有 |
| {m} | 匹配前一個(gè)字符出現(xiàn)m次 |
| {m,n} | 匹配前一個(gè)字符出現(xiàn)從m到n次 |
ret = re.match("[A-Z][a-z]*","Ab")
print(ret.group())
ret = re.match("[A-Z][a-z]*","Ab")
print(ret.group())
ret = re.match("[A-Z][a-z]*","AbcdEF")
print(ret.group())
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)
ret = re.match("[1-9]?[0-9]","7")
print(ret.group())
ret = re.match("[1-9]?\d","33")
print(ret.group())
ret = re.match("[a-zA-Z0-9_]{6}","1234abcd")
print(ret.group())
ret = re.match("[a-zA-Z0-9_]{8,20}","12345abcdefghij")
print(ret.group())