【问题标题】:How to extract data from formatted string using python?如何使用python从格式化字符串中提取数据?
【发布时间】:2017-12-31 05:40:04
【问题描述】:
我有一组这样的字符串:
C001F01.PNG
C001G01.PNG
C002F10.PNG
遵循以下格式:
C(id number)(F or G)(另一个id number).PNG
我想知道他们的 id 并知道他们是 F 类还是 G 类,我读到 re.split() 可以做类似的工作,但我很困惑,不明白 RE 是如何工作的。
【问题讨论】:
标签:
python
regex
string
text
string-formatting
【解决方案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)
【解决方案2】:
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" )