0

正規表現を使用して文字列パターンを検索しようとしています

しかし、私は正規表現に非常に慣れていないので、検索パターンについてアドバイスをお願いしたいと思います。

だから、私は以下の値が数字とアルファベットの両方である可能性があるので、「値」を持つ行を見つけたいと思います

Name (value)

パターンを使ってみました

re.search(r"Name \([a-zA-Z0-9]\)", line)

でも思った通りに見つからないようです。

検索パターンはどのように書くべきですか?ありがとうございました!

4

1 に答える 1

6

あなたの表現は素晴らしいですが、あなたのキャラクターグループには数量詞がありません:

re.search(r"Name \([a-zA-Z0-9]+\)", line)

+「それらの少なくとも1つ」を意味します。数量詞を入れないと、言及された文字の1つだけが出現する可能性があることを意味します。可能な数量詞は次のとおりです。

  • +1つ以上の場合、
  • ?せいぜい1つと
  • *それらの任意の数のために
  • {x,y}同様に機能します。つまり、少なくともx、ほとんどのy文字を意味します

また、数量詞は常にその直前に配置したものを参照します。これは、単一の文字またはで囲まれた文字グループの場合があり[]ます。

編集:rootによるコメントで述べたように\w、「すべての単語の文字」の短い表記である、を見たいと思うかもしれません。これには、すべての文字と数字、およびアンダースコアと、現在のロケールで特別に定義されている場合は特殊文字が含まれます。

于 2013-01-29T20:10:53.893 に答える