如何使用 python 从格式化字符串中提取数据?
How to extract data from formatted string using python?
我有一组这样的字符串:
C001F01.PNG
C001G01.PNG
C002F10.PNG
遵循以下格式:
C(id number)(F or G)(another id number).PNG
我想知道他们的 ID' 并知道他们是来自 class 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)
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" )
我有一组这样的字符串:
C001F01.PNG
C001G01.PNG
C002F10.PNG
遵循以下格式:
C(id number)(F or G)(another id number).PNG
我想知道他们的 ID' 并知道他们是来自 class 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)
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" )