您能帮助我在每次出现时获取两个字符之间的子串吗
例如,要获取给定示例序列中所有出现的"Q“和"E”之间的所有子字符串:
ex: QUWESEADFQDFSAEDFS
并找到长度最小的子串。
发布于 2009-04-25 03:14:50
import re
DATA = "QUWESEADFQDFSAEDFS"
# Get all the substrings between Q and E:
substrings = re.findall(r'Q([^E]+)E', DATA)
print "Substrings:", substrings
# Sort by length, then the first one is the shortest:
substrings.sort(key=lambda s: len(s))
print "Shortest substring:", substrings[0]
发布于 2009-04-25 20:21:41
RichieHindle是对的,除了
substrings.sort(key=len)
是比冗余的lambda更好的表达方式;-)。
如果您使用的是Python2.5或更高版本,min(substring,key=len)实际上会给出一个最短的字符串(如果有几个字符串表示“最短”,则是第一个),当然,这比排序和获取th元素要快得多。但是如果你坚持使用2.4或更早的版本,RichieHindle的方法是最好的选择。
https://stackoverflow.com/questions/788699
复制