Pythonの知識を強化するための正規表現(3)

一般的に使用される正規表現演算子

ここに画像の説明を挿入

ここに画像の説明を挿入

再ライブラリ

正規表現(英語名:正規表現、regex、RE)は、文字列のセットを簡潔に表現するために使用される式です。主なアプリケーションは文字列照合です。

モードの紹介:

1).re.I(re.IGNORECASE):ケースを無視する

2).re.M(MULTILINE):複数行モード、「^」と「$」の動作を変更します

3).re.S(DOTALL):一致するモードをクリックして、「。」の動作を変更します。

4).re.L(LOCALE):所定の文字クラス\ w \ W \ b \ B \ s \ Sを現在のロケール設定に依存させる

5).re.U(UNICODE):所定の文字クラス\ w \ W \ b \ B \ s \ S \ d \ Dをunicodeで定義された文字属性に依存させる

6).re.X(VERBOSE):詳細モード。このモードでは、正規表現は複数行にすることができ、空白文字を無視し、コメントを追加できます

機能紹介:
ここに画像の説明を挿入

1、re.search(pattern、string、flags = 0)

文字列内の一致する正規表現の最初の位置を検索し、一致オブジェクトを返します。

パターン:正規表現の文字列またはネイティブ文字列表現

文字列:照合する文字列

flags:正規表現を使用するときにフラグを制御します。どのモード

最初:

# -*- coding = utf-8 -*-
import re
# 创建模式对象
pat = re.compile("aa") # 此处的aa是正则表达式

reh = pat.search("aaa") # search后的字符串是被校验的字符串
print(reh)
# <re.Match object; span=(0, 2), match='aa'>

2番目のタイプ:

pat = re.search("aa","aaa")
print(pat)       
# <re.Match object; span=(0, 2), match='aa'>    

2、re.match(pattern、string、flags = 0)

文字列の先頭から正規表現に一致し、一致オブジェクトを返します。

パターン:正規表現の文字列またはネイティブ文字列表現

文字列:照合する文字列

フラグ:正規表現を使用する場合の制御フラグ

最初:

pat = re.match("a","aaaa")
print(pat)  
# <re.Match object; span=(0, 1), match='a'>  

2番目のタイプ:

pat = re.compile("a")
p = pat.match("aaaa")
print(p)
# <re.Match object; span=(0, 1), match='a'>

3、re.findall(pattern、string、flags = 0)

文字列を検索し、リストタイプで一致するすべての部分文字列を返します。

パターン:正規表現の文字列またはネイティブ文字列表現

文字列:照合する文字列

フラグ:正規表現を使用する場合の制御フラグ

最初:

pat = re.findall("a","aassaaddd");
print(pat)     
# ['a', 'a', 'a', 'a']     

2番目のタイプ:

# 创建模式对象
pat = re.compile("a") # 此处的aa是正则表达式

re = pat.findall("aassaaddd") # search后的字符串是被校验的字符串
print(re)

4、re.split(pattern、string、maxsplit = 0、flags = 0)

文字列を検索し、リストタイプで一致するすべての部分文字列を返します。

パターン:正規表現の文字列またはネイティブ文字列表現

文字列:照合する文字列

maxsplit:分割の最大数、残りの部分は最後の要素として出力されます

フラグ:正規表現を使用する場合の制御フラグ

最初:

pat = re.split("a","hadhks",2)
print(pat)
# ['h', 'dhks']

5、re.finditer(pattern、string、flags = 0)

検索文字列は一致する結果の反復タイプを返し、各反復要素は一致オブジェクトです。

パターン:正規表現の文字列またはネイティブ文字列表現

文字列:照合する文字列

フラグ:正規表現を使用する場合の制御フラグ

最初:

pat = re.finditer("a","aabbss")
for i in pat:
    print(i)
# <re.Match object; span=(0, 1), match='a'>
# <re.Match object; span=(1, 2), match='a'>

6、re.sub(pattern、repl、string、count = 0、flags = 0)

文字列内の正規表現に一致するすべての部分文字列を置き換え、置き換えられた文字列を返します。

パターン:正規表現の文字列またはネイティブ文字列表現

repl:文字列に一致する文字列を置き換えます

文字列:照合する文字列

カウント:一致する置換の最大数

フラグ:正規表現を使用する場合の制御フラグ

最初:

pat = re.sub("a","b","aaaadddvvv",5)
print(pat)  
# bbbbdddvvv   

Reライブラリのもう1つの同等の使用法:

機能的な使用法:1回限りの操作

rst = re.search(r'[1-9]\d{5}', 'BIT 100081')

オブジェクト指向の使用法:コンパイル後の複数の操作

pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('BIT 100081')
regex = re.comile(pattern,flags=0)

正規表現の文字列形式を正規表現オブジェクトにコンパイルします

パターン:正規表現の文字列またはネイティブ文字列表現

フラグ:正規表現を使用する場合の制御フラグ

正規表現は正規表現です:regex = re.compile(r '[1-9] \ d {5}')

エスケープ文字を避けるために、一致した文字列の前にrを追加します

s = r"'ssssss\'"
print(s)
# 'ssssss\'

おすすめ

転載: blog.csdn.net/weixin_42272869/article/details/113786457