如何在Python中查找两个特殊字符之间的字符串?
我有一组这样的字符串:
uc001acu.2;C1orf159;chr1:1046736-1056736;uc001act.2;C1orf159;
我需要从中提取两个分号之间的子字符串,而且我只需要第一个出现的结果。
结果应该是:C1orf159
我试过这个代码,但它不管用:
import re
info = "uc001acu.2;C1orf159;chr1:1046736-1056736;uc001act.2;C1orf159;"
name = re.search(r'\;(.*)\;', info)
print name.group()
请帮帮我。谢谢!
2 个回答
0
import re
pattern=re.compile(r".*?;([a-zA-Z0-9]+);.*")
print pattern.match(info).groups()
这个代码的意思是,它会先找到第一个分号(;),然后用一种不贪心的方式去匹配,也就是尽量少地匹配字符,直到找到分号为止。接着,它会抓取接下来的字母和数字组合,直到找到下一个分号为止。最后,它会把匹配到的内容通过 .groups() 方法提取出来。
6
你可以把这个字符串分开,并且限制分开的次数为两次。
x = info.split(';',2)[1]