Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python正規表現で使用される文字クラス内のメタ文字とは何ですか?


ほとんどの文字と文字は単純に一致します。ただし、メタ文字と呼ばれる、自分自身と一致しない文字がいくつかあります。代わりに、いくつかのパターンを一致させる必要があること、または正規表現の一部を繰り返すか変更することを示します。

メタ文字の完全なリストは次のとおりです

. ^ $ * + ? { } [ ] \ | ( )

まず、[と]を見ていきます。これらは、一致させたい文字のセットである文字クラスを示すために使用されます。文字を個別にリストすることも、2文字を指定して「-」で区切ることにより、文字の範囲を示すこともできます。たとえば、[xyz]は、文字x、y、またはzのいずれかに一致します。これは、範囲を使用して同じ文字セットを表す[x-z]と同じです。小文字のみを照合する場合、正規表現は[a-z]になります。

メタ文字はクラス内では機能しません。たとえば、[abc $]は、文字「a」、「b」、「c」、または「$」のいずれかに一致します。 「$」はメタ文字ですが、文字クラス内ではその特殊な性質が取り除かれています。

クラスの最初の文字として「^」がある場合、それはこのクラスに属していないすべての文字を意味します。たとえば、[^8]は「8」以外のすべての文字に一致します。

おそらく最も重要なメタ文字は円記号\です。また、すべてのメタ文字をエスケープして、パターンでそれらを一致させるためにも使用されます。たとえば、]または\を一致させる必要がある場合は、それらの前に円記号を付けて、それらの特別な意味を削除できます:\]または\\。


  1. 正規表現を使用してPythonで空白以外の文字を照合するにはどうすればよいですか?

    次のコードは、指定された文字列内のすべての非空白文字と一致します。 例 import re foo = re.search(r'\S+', 'Need for Speed 2') print foo 出力 <_sre.SRE_Match object at 0x0000000004A06648> 例 次のコードは、指定された文字列内の空白以外のすべての文字と一致して検索し、それらを出力します import re foo = re.findall(r'\S+', 'Need for Speed 2') print foo

  2. 文字列が英数字かどうかを確認するPython正規表現とは何ですか?

    モジュールの正規表現または正規表現を使用して文字列が英数字のみで構成されているかどうかを確認するには、正規表現 ^ [a-zA-Z0-9] + $を使用してre.match(regex、string)を呼び出すことができます。 たとえば、 >>> bool(re.match('^[a-zA-Z0-9]+$', '789def')) True >>> bool(re.match('^[a-zA-Z0-9]+$', '789#%$def')) False re.matchはオブジェクトを返しま