如何在python中找到特殊字符之间的字符串?

时间:2014-08-08 04:42:48

标签: python regex

我有一组这样的字符串:

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 :(得分:6)

您可以拆分字符串并将其限制为两个分割。

x = info.split(';',2)[1]

答案 1 :(得分:0)

       import re
       pattern=re.compile(r".*?;([a-zA-Z0-9]+);.*")
       print pattern.match(info).groups()

这首先寻找;非贪婪地吃饭。*?然后它捕获字母数字字符串,直到下一个;找到它。然后它吃掉了字符串的其余部分。虽然捕获了.groups()