我有這樣一組字符串:如何使用python從格式化的字符串中提取數據?
其遵循的格式C001F01.PNG
C001G01.PNG
C002F10.PNG
:
C(身份證號碼)(F或G)(另一個身份證號碼).PNG
我想知道他們的ID並知道他們是否來自F級或G級,我已經讀了re.split()
可以做類似的工作,但我很困惑,不明白RE是如何工作的。
我有這樣一組字符串:如何使用python從格式化的字符串中提取數據?
其遵循的格式C001F01.PNG
C001G01.PNG
C002F10.PNG
:
C(身份證號碼)(F或G)(另一個身份證號碼).PNG
我想知道他們的ID並知道他們是否來自F級或G級,我已經讀了re.split()
可以做類似的工作,但我很困惑,不明白RE是如何工作的。
你當然應該閱讀更多的正則表達式。第一個提示是,當你想捕捉一個模式時,你需要把它放在圓括號中。例如(\ 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)
非常感謝。我試圖閱讀這個(https://docs.python.org/2/library/re.html),但無法理解它。 – Farhood
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")
歡迎來到StackOverflow。請參閱[如何格式化我的代碼塊?](// meta.stackexchange.com/q/22186) – Tushar
參見[什麼正則表達式均值(http://stackoverflow.com/questions/22937618/reference-what-does-this-regex這意味着很多好的提示。 –
[學習正則表達式](// stackoverflow.com/q/4736) – Tushar