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 サイトの他の関連記事を参照してください。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
