2017-07-25 158 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

相关问题