2017-07-25 10 views
-8

私はこのような文字列のセットがあります。Pythonを使用して書式設定された文字列からデータを抽出する方法は?

C001F01.PNGを

C001G01.PNG

C002F10.PNGのフォーマットに従う

C(ID番号)(FまたはG)(別のID番号).PNG

私はそのIDをお知りになりたいと、彼らはクラスFまたはGからのものであったかどうかを知り、私はre.split()は、同様の作業を行うことができることを読みましたが、私は混乱しているとREが正確にどのように機能するかを理解していません。

+0

参照[正規表現の平均値を何](http://stackoverflow.com/questions/22937618/reference-what-does-this-regex - それは素晴らしいヒントのトンのため)。 –

+0

[正規表現の学習](// stackoverflow.com/q/4736) – Tushar

答えて

1

あなたは確かに正規表現についてもっと読むべきです。最初のヒントは、パターンをキャプチャしたいときはカッコで囲む必要があるということです。例えば(\ d +)。しかしこの例では、必要なコードは次のとおりです。

match = re.match(r'C(\d+)([F|G])(\d+)\.PNG', s) 

first_id = match.group(1) 
fg_class = match.group(2) 
second_id = match.group(3) 
+0

ありがとうございます。私はこれを読むことを試みましたが(https://docs.python.org/2/library/re.html)、それほど理解できませんでした。 – Farhood

0
s = "123STRINGabcabc" 

def find_between(s, first, last): 
    try: 
     start = s.index(first) + len(first) 
     end = s.index(last, start) 
     return s[start:end] 
    except ValueError: 
     return "" 



print find_between(s, "123", "abc") 
+0

ようこそStackOverflowへ。 [コードブロックをどのようにフォーマットするのですか?](// meta.stackexchange.com/q/22186)を参照してください。 – Tushar

関連する問題