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

Python正規表現で「?:」とはどういう意味ですか?


非キャプチャグループ

グループに一致をキャプチャさせたくない場合は、この正規表現をSet(?:Value)として記述できます。疑問符と開き括弧の後のコロンは、非キャプチャグループを作成する構文です。

正規表現Set(Value)? SetまたはSetValueに一致します。最初のケースでは、最初の(そして唯一の)キャプチャグループは空のままです。 2番目のケースでは、最初のキャプチャグループがValueと一致します。最後に表示される疑問符は、前のトークンをオプションにする数量詞です。

Set(?:Value)は、Setxxxxxと一致します。つまり、Setで始まり、その後にValueが続かないすべての文字列に一致します。これは非キャプチャグループになります。

color =(?:red | green | blue)は、キャプチャされていないグループを持つ別の正規表現です。この正規表現には数量詞がありません。

名前付きキャプチャをサポートする正規表現フレーバーには、多くの場合、名前のないすべてのグループを非キャプチャグループに変換するオプションがあります。


  1. %はPythonの文字列に何をしますか?

    %は、文字列フォーマット演算子または補間演算子です。 formatの%値(formatは文字列)を指定すると、formatの%変換仕様は、0個以上の値の要素に置き換えられます。この効果は、C言語でsprintf()を使用する場合と同様です。たとえば、 >>> lang = "Python" >>> print "%s is awesome!" % lang Python is awesome この表記で数値をフォーマットすることもできます。たとえば、 >>> cost = 128.527 >&

  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はオブジェクトを返しま