結合を使用して複数の正規表現を照合する

市場で

キーがすべてプリコンパイルされた正規表現である辞書があります。文字列をこれらの正規表現のいずれかに一致させたい。

調べてみると、joinメソッドで正規表現を結合することで複数の正規表現を一致させることができることがわかりました。しかし、そうすると、タイプエラーが発生します。

import re

regex1 = re.compile("regex1.*")
regex2 = re.compile("regex2\d")
re_dict = {regex1 : "stuff", regex2 : "otherstuff"}
match_multiple = "|".join(list(re_dict.keys()))
string = 'regex25'
if re.match(match_multiple, string):
    print("matched")

これは与える:

Traceback (most recent call last):
   File "./a.py", line 7, in <module>
    match_multiple = "|".join(list(re_dict.keys()))
TypeError: sequence item 0: expected str instance, re.Pattern found
Jean-Francois Fabre

str.joinオブジェクトではなく文字列機能しreます。参加してからコンパイルします。

regex1 = "regex1.*"
regex2 = "regex2\d"
re_dict = {regex1 : "stuff", regex2 : "otherstuff"}
match_multiple = re.compile("|".join(re_dict))

dictは順序付けられていないことに注意してください(python 3.6を実行している場合を除く)。したがって、式の順序が重要な場合は、コードが正しくない可能性があります。

また、辞書を反復処理するとキーが生成されるlist(re_dict.keys())ためre_dictからの簡略化にも注意してください明示的に呼び出しkeysたり変換したりする必要はありませんlist

(まあ、ここで辞書を使用することはとにかく実際には役に立ちません。将来、正規表現をキーとして使用する方法は?)

プリコンパイルされた式にしかアクセスできない場合は、正規表現を「エミュレート」するany

if any(r.match(string) for r in re_dict):

any短絡するためTrue、1つの正規表現が一致するとすぐに終了します

または、patternregex属性を使用してパターンを再構築します。

match_multiple = re.compile("|".join([r.pattern for r in re_dict]))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

正規表現を使用して文字列内の変数を照合する

分類Dev

Java-複数行の正規表現を使用して最初の文字列を照合する

分類Dev

正規表現を使用して複数のコンマ区切りの単語を照合する

分類Dev

正規表現を使用して複数行のテキストを照合する

分類Dev

C#で正規表現を使用して複数の行を照合する方法

分類Dev

複数の変更を正規表現と照合する

分類Dev

正規表現を使用して呼び出し元関数を照合する

分類Dev

Powershellで正規表現を使用して$$を照合する

分類Dev

sedを使用して正規表現を照合する

分類Dev

正規表現を使用して複数の行を照合し、regexpとPHPを使用してこれらの照合された行を変更します

分類Dev

CSSで正規表現を使用して数値を照合する

分類Dev

正規表現を使用して、複数の単語を順番に照合します

分類Dev

正規表現を使用して、複数の単語を順番に照合します

分類Dev

PHPで正規表現を使用して照合する方法

分類Dev

複数のタグを正規表現を使用して1つのタグに結合する

分類Dev

正規表現を使用して特定の演算子を照合する

分類Dev

Perl正規表現を使用して文字列の一部を照合する

分類Dev

正規表現を使用してPowershellのパスを照合する

分類Dev

正規表現を使用して特定のデータを照合する

分類Dev

正規表現を使用しないC ++複数文字列照合

分類Dev

preg_match_allを使用してすべての数値を正規表現と照合する

分類Dev

複数の正規表現を1つに結合します

分類Dev

複数行のテキストを照合するための正規表現

分類Dev

複数の文字グループをPythonの正規表現と照合する

分類Dev

単語の複数の反復を正規表現と照合する

分類Dev

正規表現を使用して、1行の文字列内の複数の要素を照合するにはどうすればよいですか

分類Dev

文字列を複数の正規表現パターンと照合します

分類Dev

Javascriptで複数の正規表現グループを照合する

分類Dev

文字列を複数の正規表現と照合する方法は?

Related 関連記事

  1. 1

    正規表現を使用して文字列内の変数を照合する

  2. 2

    Java-複数行の正規表現を使用して最初の文字列を照合する

  3. 3

    正規表現を使用して複数のコンマ区切りの単語を照合する

  4. 4

    正規表現を使用して複数行のテキストを照合する

  5. 5

    C#で正規表現を使用して複数の行を照合する方法

  6. 6

    複数の変更を正規表現と照合する

  7. 7

    正規表現を使用して呼び出し元関数を照合する

  8. 8

    Powershellで正規表現を使用して$$を照合する

  9. 9

    sedを使用して正規表現を照合する

  10. 10

    正規表現を使用して複数の行を照合し、regexpとPHPを使用してこれらの照合された行を変更します

  11. 11

    CSSで正規表現を使用して数値を照合する

  12. 12

    正規表現を使用して、複数の単語を順番に照合します

  13. 13

    正規表現を使用して、複数の単語を順番に照合します

  14. 14

    PHPで正規表現を使用して照合する方法

  15. 15

    複数のタグを正規表現を使用して1つのタグに結合する

  16. 16

    正規表現を使用して特定の演算子を照合する

  17. 17

    Perl正規表現を使用して文字列の一部を照合する

  18. 18

    正規表現を使用してPowershellのパスを照合する

  19. 19

    正規表現を使用して特定のデータを照合する

  20. 20

    正規表現を使用しないC ++複数文字列照合

  21. 21

    preg_match_allを使用してすべての数値を正規表現と照合する

  22. 22

    複数の正規表現を1つに結合します

  23. 23

    複数行のテキストを照合するための正規表現

  24. 24

    複数の文字グループをPythonの正規表現と照合する

  25. 25

    単語の複数の反復を正規表現と照合する

  26. 26

    正規表現を使用して、1行の文字列内の複数の要素を照合するにはどうすればよいですか

  27. 27

    文字列を複数の正規表現パターンと照合します

  28. 28

    Javascriptで複数の正規表現グループを照合する

  29. 29

    文字列を複数の正規表現と照合する方法は?

ホットタグ

アーカイブ