我有这样一组字符串:如何使用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