検索
ホームページバックエンド開発Python チュートリアルPython 正規表現と re ライブラリの概要 (コード例)

この記事では、Python の正規表現と re ライブラリについての紹介 (コード例) を紹介します。一定の参考になる内容です。困っている友人は参考にしてください。お役に立てれば幸いです。

正規表現は、検索パターンを定義する一連の文字です。通常、このパターンは、文字列に対する「検索」または「検索と置換」操作、または入力検証のための文字列検索アルゴリズムによって使用されます。

1. 正規表現の構文

  • . 任意の 1 文字を表します

  • [] 文字セット単一文字の値の範囲を指定します

  • [^] 非文字セット、単一文字の除外範囲を指定します

  • *前の文字は 0 回または無限に展開されます

  • 前の文​​字は 1 回または無限に展開されます

  • ? 前の文字は 0 回展開されますまたは 1 回の展開

  • |左右の式のいずれか 1 つで

  • #{m}前の文字を m 回展開します

  • {m,n}前の文字を m 回 n 回展開します

  • ##^文字列の先頭と一致します
  • ##$文字列
  • () グループ化マークの末尾と一致します。内部的に使用できるのは | 演算子のみです。
  • d 数値、同等[0-9]
  • w ワード文字まで。[A-Z,a-z,0-9]
2 に相当します。 Python での re ライブラリの使い方

Re ライブラリは Python の標準ライブラリで、主に文字列マッチングに使用されます呼び出し方法: import re

2.1. 正規表現文字列の種類

re ライブラリ 生の文字列タイプは正規表現を表すために使用され、

r'text'
生の文字列はエスケープ文字を含まない文字列です。 , それは文字列です 文字はエスケープされますが、生の文字列はエスケープされません、エスケープ記号が正規表現に現れるため、面倒なことを避けるために生の文字列を使用します#2.2. ライブラリのメイン関数 function

    #re.search
  • () 文字列内の正規表現の最初の位置を検索し、一致オブジェクトを返します

  • re .match()
  • 文字列の先頭から正規表現を照合し、一致オブジェクトを返します

  • re.findall()
  • 文字列を検索します、リスト型の一致するすべての部分文字列を返します

  • re.split()
  • 正規表現の一致結果に従って文字列を分割し、リスト型を返します

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

  • re.sub()
  • 文字列内の正規表現に一致するすべての部分文字列を置換し、置換された文字列を返します

    2.2.1 . re.search(pattern, string, flags=0)
文字列内の正規表現の最初の位置を検索し、一致オブジェクトを返します

##pattern : 正規表現の文字列またはネイティブ文字列表現

  • string : 照合対象の文字列

  • flags : 正規表現を使用する場合 制御タグ

  • re.I re.IGNORECASE 正規表現の大文字と小文字を無視します。[A-Z] は小文字と一致します。

  • re .M re.MULTILINE 正規表現の ^ 演算子は次のことができます。指定された文字列の各行を一致として開始します

  • re.S re.DOTALL 正規表現文字の . 演算はすべての文字に一致し、デフォルトでは改行を除くすべての文字に一致します

  • 例:

    import re
    match = re.search(r'[1-9]\d{5}', 'BIT 100081')
    if match:
        print(match.group(0))
    
    结果为100081
  • 2.2.2. re.match(pattern, string, flags= 0)

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

パラメータは検索関数と同じです

例:

import re
match = re.match(r'[1-9]\d{5}', 'BIT 100081')
print(match.group(0))

结果会报错,match为空,因为match函数是
从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空

2.2.3.re.findall(pattern, string, flags=0)

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

パラメータは検索と同じです

例:

import re
ls=re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084')
print(ls)

结果为['100081', '100084']

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

正規表現の一致結果に従って文字列を分割し、リスト型を返します

maxsplit: 分割の最大数。残りの部分は最後の要素として出力

  • #例:

    import re
    re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084')
    结果['BIT', ' TSU', ' ']
    re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084', maxsplit=1)
    结果['BIT', ' TSU100081']
    2.2.5.re.finditer(pattern, string, maxsplit =0, flags=0)
文字列を検索し、一致する結果の反復タイプを返します。各反復要素は一致オブジェクトです。

パラメータは search と同じです。

Example:

import re
for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'):
    if m:
        print(m.group(0))
结果为
100081
100084

2.2.6. re. sub(pattern, repl, string, count=0, flags=0)


文字列内の正規表現に一致するすべての部分文字列を置換し、置換後の文字列を返します

#repl : 文字列に一致する文字列を置換します。

    #count: 一致する文字列の最大置換数
  • Example:
  • import re
    re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084')
    结果为
    'BIT:zipcode TSU:zipcode'

    2.3 Re ライブラリの別の同等の使用法 (オブジェクト指向)

    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.complie(pattern,flags=0)
regex にも上記の 6 つの使用法があります

2.4 一致Re ライブラリのオブジェクト

Match オブジェクトは一致の結果であり、多くの一致情報が含まれています


以下はオブジェクトの Match 属性です

.string 照合するテキスト

    .re 照合に使用するパターン オブジェクト (正規表現モード)
  • #.pos 正規表現検索テキストの開始位置

  • #.endpos 正規表現検索テキストの終了位置

#Match オブジェクトのメソッドは次のとおりです。

  • .group(0) 一致した文字列を取得します

  • .start() 元の文字列の先頭の文字列と一致します

  • .end() 元の文字列の末尾の文字列と一致します

  • .span() returns (.start(), .end())

2.5 Re ライブラリの貪欲なマッチングと最小限のマッチング

正規表現が長さの異なる複数の項目に一致する場合、どれが返されますか? Re ライブラリはデフォルトで貪欲マッチングを使用します。つまり、一致する最長の部分文字列

と一致する最小の部分文字列

    # を返します。 #*? before 文字は 0 回または無限に展開され、最小一致は
  • #? 前の文字は 1 回または無限に展開され、最小一致は
  • ##?? 前の文字は 0 回または 1 回展開されます。最小一致は

  • {m,n} です? 前の文字は m 回から n 回展開されます(両端を含む)、最小一致は

  • 出力の長さが異なる可能性がある限り、演算子の後に ? を追加して最小一致になります

以上がPython 正規表現と re ライブラリの概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Python:編集と解釈に深く掘り下げますPython:編集と解釈に深く掘り下げますMay 12, 2025 am 12:14 AM

pythonusesahybridmodelofcompilation andtertation:1)thepythoninterpretercompilessourcodeodeplatform-indopent bytecode.2)thepythonvirtualmachine(pvm)thenexecuteTesthisbytecode、balancingeaseoputhswithporformance。

Pythonは解釈されたものですか、それとも編集された言語であり、なぜそれが重要なのですか?Pythonは解釈されたものですか、それとも編集された言語であり、なぜそれが重要なのですか?May 12, 2025 am 12:09 AM

pythonisbothintersedand compiled.1)it'scompiledtobytecode forportabalityacrossplatforms.2)bytecodeisthenは解釈され、開発を許可します。

ループ対pythonのループの場合:説明されたキーの違いループ対pythonのループの場合:説明されたキーの違いMay 12, 2025 am 12:08 AM

loopsareideal whenyouwhenyouknumberofiterationsinadvance、foreleloopsarebetterforsituationsは、loopsaremoreedilaConditionismetを使用します

ループのために:実用的なガイドループのために:実用的なガイドMay 12, 2025 am 12:07 AM

henthenumber ofiterationsisknown advanceの場合、dopendonacondition.1)forloopsareideal foriterating over for -for -for -saredaverseversives likelistorarrays.2)whileopsaresupasiable forsaresutable forscenarioswheretheloopcontinupcontinuspificcond

Python:それは本当に解釈されていますか?神話を暴くPython:それは本当に解釈されていますか?神話を暴くMay 12, 2025 am 12:05 AM

pythonisnotpurelyLepted; itusesahybridapproachofbytecodecodecodecodecodecodedruntimerttation.1)pythoncompilessourcodeintobytecode、whodythepythonvirtualmachine(pvm).2)

同じ要素を持つPython Concatenateリスト同じ要素を持つPython ConcatenateリストMay 11, 2025 am 12:08 AM

ToconcatenateListsinpythothesheElements、使用:1)Operatortokeepduplicates、2)asettoremoveduplicates、or3)listcomplunting for controloverduplicates、各メトドハスディフェルフェルフェントパフォーマンスアンドソーダーインプリテーション。

解釈対編集言語:Pythonの場所解釈対編集言語:Pythonの場所May 11, 2025 am 12:07 AM

pythonisantertedlanguage、useaseofuseandflexibility-butfactingporformantationationsincriticalapplications.1)解釈されたlikepythonexecuteline-by-lineを解釈します

ループのために:Pythonでそれぞれを使用するのはいつですか?ループのために:Pythonでそれぞれを使用するのはいつですか?May 11, 2025 am 12:05 AM

Useforloopswhenthenumberofiterationsisknowninadvance、andwhiloopswheniterationsdependonacondition.1)forloopsareidealforsecenceslikelistoranges.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、