Python標準ライブラリのreモジュールを学習するための詳細な紹介
re モジュールは一連の強力な 正規表現 (正規表現) ツールを提供しており、これを使用すると、指定された string が指定されたパターンに一致するかどうか (matchfunction)、またはこのパターンが含まれているかどうか (search 関数) を迅速にチェックできます。 。正規表現は、コンパクトな (そして神秘的な) 構文で記述された文字列パターンです。
1. 一般的なメソッド
共通のメソッド | 説明 |
---|---|
match(pattern, string, flags=0) | 文字列 string の先頭が正規表現パターンと一致する場合、対応する MatchObject のインスタンス、それ以外の場合は None が返されます。 |
search(pattern, string, flags=0) | は、正規表現パターンに一致する位置があれば、MatchObject のインスタンスを返します。それ以外の場合は、None が返されます。 |
sub(pattern, repl, string, count=0, flags=0) | count 回までの string の部分を repl に置き換えます。 |
subと同様に、subnは置換された文字列と一致する時刻の配列を返します | タプルに変換します|
split(pattern, string, maxsplit=0, flags=0) | pattern に一致する文字列を使用して文字列を分割します |
findall(pattern, string, flags=0) | Returnリスト形式の文字列内のパターンに一致する文字列 |
compile(pattern, flags=0)compile(pattern, flags=0) | 正規表現パターンを正規のオブジェクトにコンパイルします。使用される正規オブジェクトの一致および検索メソッド |
purge() | 正規表現キャッシュ |
文字と数字を除く文字列内のすべての文字を置き換えます。 |
文法 | 説明 |
---|---|
. | は改行を除く任意の文字と一致します |
^ | ヘッダーの一致 |
$ | テールマッチング |
* | 前の文字と0回以上一致 |
+ | 前の文字と1回以上一致 |
? | 前の文字と0回以上一致 |
{m,n } | 前の文字を m 回から n 回照合します |
特殊文字をエスケープします | |
[] | は、文字セットを表すために使用されます結合します |
| | または、を表します左または右の任意の一致 |
3. モジュールメソッド
re.match(pattern, string, flags=0)
文字列の先頭から一致する場合は Match オブジェクトのインスタンスを返し、一致しない場合は None を返します。 Flags はマッチング モード (後述) であり、正規表現のマッチング方法を制御するために使用されます。
import re a = 'abcdefg'print re.match(r'abc', a) # 匹配成功print re.match(r'abc', a).group()print re.match(r'cde', a) # 匹配失败>>><_sre.SRE_Match object at 0x0000000001D94578> >>>abc >>>None
search(pattern, string, flags=0)
文字列内で正常に一致する部分文字列を検索するために使用され、見つかった場合は Match オブジェクトのインスタンスを返し、それ以外の場合は None を返します。
import re a = 'abcdefg'print re.search(r'bc', a)print re.search(r'bc', a).group()print re.search(r'123', a) >>><_sre.SRE_Match object at 0x0000000001D94578> >>>bc >>>None
sub(pattern, repl, string, count=0, flags=0)
Replace、パターンに一致する文字列の部分をreplでcount回まで置き換えます(残りの一致は処理されません)、その後、置き換えられたものを返します弦。
import re a = 'a1b2c3'print re.sub(r'\d+', '0', a) # 将数字替换成'0'print re.sub(r'\s+', '0', a) # 将空白字符替换成'0'>>>a0b0c0 >>>a1b2c3
subn(pattern, repl, string, count=0, flags=0)
は、新しい文字列と一致の数を含むタプルを返すことを除いて、sub()関数と同じです
import re a = 'a1b2c3'print re.subn(r'\d+', '0', a) # 将数字替换成'0'>>>('a0b0c0', 3)
split (pattern, string, maxsplit=0, flags=0)
通常バージョンのsplit()は、パターンに一致する部分文字列を使用して文字列を分割します。パターンで括弧が使用されている場合、パターンに一致する文字列も返されます。値リストの一部である maxsplit は、最も分割された文字列です。
import re a = 'a1b1c'print re.split(r'\d', a)print re.split(r'(\d)', a) >>>['a', 'b', 'c'] >>>['a', '1', 'b', '1', 'c']
findall(pattern, string, flags=0)
pattern に一致する string 内の重複しない部分文字列をリストの形式で返します。
import re a = 'a1b2c3d4'print re.findall('\d', a) >>>['1', '2', '3', '4']
4. Match オブジェクト
re.match() と re.search() が正常に一致すると、一致に関する多くの情報を含む Match オブジェクトが返されます。これらの情報を取得するには一致します。例:
>>>import re >>>str = 'he has 2 books and 1 pen' >>>ob = re.search('(\d+)', str) >>>print ob.string # 匹配时使用的文本 he has 2 books and 1 pen >>>print ob.re # 匹配时使用的Pattern对象 re.compile(r'(\d+)') >>>print ob.group() # 获得一个或多个分组截获的字符串 2 >>>print ob.groups() # 以元组形式返回全部分组截获的字符串 ('2',)
5. Pattern オブジェクト
Pattern オブジェクトは、re モジュール内に同じ名前のメソッドが多数ある re.compile() によって返され、これらのメソッドは同様の機能を持ちます。例:
>>>import re >>>pa = re.compile('(d\+)') >>>print pa.split('he has 2 books and 1 pen') ['he has ', '2', ' books and ', '1', ' pen'] >>>print pa.findall('he has 2 books and 1 pen') ['2', '1'] >>>print pa.sub('much', 'he has 2 books and 1 pen') he has much books and much pen
6. マッチングパターン値は、re.I | re.M のように、ビット単位の OR
'|' を使用できます。いくつかの一般的なフラグ。 re.I(re.IGNORECASE): 大文字と小文字を無視します>>>pa = re.compile('abc', re.I) >>>pa.findall('AbCdEfG') >>>['AbC']
ログイン後にコピー
- この機能は、文字セットの多言語バージョンをサポートすることです使用環境 ( エスケープ文字
など)、つまりすべての英語の文字と数字。フランス語環境で使用した場合、一部のフランス語文字列は一致しません。このLオプションを追加するとマッチングできます。ただし、これは中国語環境ではあまり役に立たないようです。それでも中国語の文字と一致することはできません。 w
,在英文环境下,它代表[a-zA-Z0-9]
>>>pa = re.compile('^\d+') >>>pa.findall('123 456\n789 012\n345 678') >>>['123'] >>>pa_m = re.compile('^\d+', re.M) >>>pa_m.findall('123 456\n789 012\n345 678') >>>['123', '789', '345']
ログイン後にコピー
.
号将匹配所有的字符。缺省情况下.
匹配除换行符\n
外的所有字符,使用这一选项以后,点号就能匹配包括换行符的任何字符。
re.U(re.UNICODE): 根据Unicode字符集解析字符
re.X(re.VERBOSE): 详细模式
# 这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的a = re.compile(r"""\d + # the integral part \. # the decimal point \d * # some fractional digits""", re.X) b = re.compile(r"\d+\.\d*")# 但是在这个模式下,如果你想匹配一个空格,你必须用'/ '的形式('/'后面跟一个空格)
以上がPython標準ライブラリのreモジュールを学習するための詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。
