我有一组这样的字符串:
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()
请帮帮我。 感谢
答案 0 :(得分:6)
您可以拆分字符串并将其限制为两个分割。
x = info.split(';',2)[1]
答案 1 :(得分:0)
import re
pattern=re.compile(r".*?;([a-zA-Z0-9]+);.*")
print pattern.match(info).groups()
这首先寻找;非贪婪地吃饭。*?然后它捕获字母数字字符串,直到下一个;找到它。然后它吃掉了字符串的其余部分。虽然捕获了.groups()