程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python基礎庫-正則表達式庫

編輯:Python


活動地址:CSDN21天學習挑戰賽

文章目錄

  • 1.正則表達式
    • 1.1正則表達概述
    • 1.2正則表達式庫
    • 1.3一個簡單的例子:檢查用戶輸入的郵箱地址是否合法
  • 2.正則表達式-原子
  • 3.正則表達式-元字符和語法

1.正則表達式

1.1正則表達概述

正則表達式,又稱規則表達式**,**(Regular Expression,在代碼中常簡寫為regex、regexp或RE),是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為"元字符"),是計算機科學的一個概念。

正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串,通常被用來檢索、替換那些符合某個模式(規則)的文本。

現代編程語言基本內嵌了正則表達式的庫,如per、python也不例外。雖然各種語言和庫的定義的正則表達式的語法規則會有所不同,但基本內容是相同的。

1.2正則表達式庫

Python 雖然自帶正則表達式庫re,但是該庫不是自動加載進內存中的,需要使用下面的語句來引入

import re

正則表達式的基礎是匹配,匹配操作有兩個,一個是規則,另一個是輸入字符串在匹配的基礎上可以進行替換、檢索等操作。

1.3一個簡單的例子:檢查用戶輸入的郵箱地址是否合法

一個簡單的例子:檢查用戶輸入的郵箱地址是否合法,合法的郵箱地址應該符合下面的格式
用戶名 @ 主機名
# 引入正則表達式庫
import re
# 定義函數
def valid_email_address(addr):
result = re.match(r"^[a-zA-z0-9][email protected][a-zA-z0-9]+(\.[a-zA-z0-9]+)*$", addr)
# 匹配成功
if result is not None:
print("[%s] is a valid email address" % addr)
# 匹配失敗
else:
print("[%s] is NOT a valid email address" % addr)
valid_email_address("name")
valid_email_address("[email protected]")
valid_email_address("[email protected]")
執行結果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/正則/驗證郵箱.py
[name] is NOT a valid email address
[[email protected]] is NOT a valid email address
[[email protected]126.com] is a valid email address
Process finished with exit code 0

2.正則表達式-原子

原子是正則表達式中最基本的組成單位,每個正則表達式中至少要包含一個原子。常見的原子類型有:

1.普通字符作為原子 : 如 az、AZ、0~9 等
2.非打印字符作為原子:如 \f \n \r \t \v \cx
3.通用字符作為原子:\d \D \w \W \s \S
4.原子表:自定義原子表([])作為原子:如:’/[apj]sp/’ ’/[^apj]sp/’
5.一些特殊字符和轉義後元字符作為原子:
所有標點符號,但語句特殊意義的符號需要轉義後才可作為原子,如:\” \’ * + ? . 等

3.正則表達式-元字符和語法

在正則表達式中,定義了一些元字符。這些字符一般用來匹配一組字符,如果希望匹配0-9這10個數字字符,那麼便可以用元字符\d。元字符一般是以\開頭,後面在跟著一個字符。另外有些語法是描述某個或某組字符出現的頻率的,例如。如果認為某個字段是可選的,則可以指定其出現的頻率是0或者是1

常用的元字符和語法

元字符功能描述.任意字符除換行外的任意字符\轉義符轉義符的作用就是使元字符無效;如.表示任意非換行字符,而 \。(英文點) 就表示普通小數點\d單個數字字符\d等效於0-9\D單個非數字字符\D等效除了0-9之外的任意字符,等效[^0-9]\s空白字符空白字符包含空格、回車\r、換行\n、制表\t、換頁\f\S非空白字符\S+表示不包含空格字符的字符串\w單詞字符單詞字符包括大小寫字母、數字、下劃線,不包括空格、$、#等\W非單詞字符非\w所包含的字符*任意多個表示0或者多個前面的字符+一個或者多個表示1個或者多個前面的字符?1個或者0個表示0個或1個前面的字符{m}出現指定次數表示m個前面的字符{mn}指定出現次數的范圍表示m到n個前面的字符^開頭表示輸入的的第一個字符$結尾表示字符串的結尾字符

未完待續


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved