2017-07-25 156 views
-8

我有這樣一組字符串:如何使用python從格式化的字符串中提取數據?

C001F01.PNG

C001G01.PNG

C002F10.PNG

其遵循的格式

C(身份證號碼)(F或G)(另一個身份證號碼).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

相關問題