在Python中查找子字符串
请问你能帮我找到每次出现的两个字符之间的子字符串吗?
比如说,我想在给定的例子中找到所有在“Q”和“E”之间的子字符串,所有出现的地方都要找出来:
ex: QUWESEADFQDFSAEDFS
还有,我想找到长度最短的那个子字符串。
2 个回答
7
RichieHindle说得对,不过
substrings.sort(key=len)
用这种方式表达会比那个多余的lambda好一些;-)。
如果你使用的是Python 2.5或更高版本,min(substrings, key=len)会更快地找到最短的字符串(如果有多个最短的字符串,会返回第一个)。这比先排序再取第一个元素要快很多。当然,如果你只能用2.4或更早的版本,RichieHindle的方法就是最好的选择。
16
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]
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。