用于读取由分号分隔的字符串并捕获特殊字符的正则表达式.蟒蛇

kkh*_*i99 1 python regex

我有一个字符串如下:

mod_str ="10Deamidated; 12Gln->pyro-Glu"
Run Code Online (Sandbox Code Playgroud)

我想将字符串的两个部分分成列表的元素,其中元组包含整数和字符串,如下所示:

[('10', 'Deamidated'), ('12', 'Gln->pyro-Glu')]
Run Code Online (Sandbox Code Playgroud)

我使用以下代码捕获字符串,但我不知道如何包含特殊字符.

match_pattern = re.compile(r'(\d+)(\w+)')
items = match_pattern.findall(mod_str)
Run Code Online (Sandbox Code Playgroud)

到目前为止,输出看起来像这样:

[('10', 'Deamidated'), ('12', 'Gln')]
Run Code Online (Sandbox Code Playgroud)

对于如何解决这个问题,有任何的建议吗?

Dav*_*ood 5

这个正则表达式怎么样?: (\d+)([^;]+)

第二组将捕获一个或多个不是分号的字符.

  • 或者添加你想要支持的特殊字符,转义那些在字符组中有特殊含义的字符,比如`(\ d +)([\ w\ - >] +)` (2认同)