我正在尝试寻找一种模式,并在python3中捕获它。由于某些原因,re.search('(NM_\d+)[^.]', 'NM_000051.3').group(1)
无法返回我期望的结果。结果是“ NM_00005”而不是“ NM_000051”。有人可以解释为什么吗?
答案 0 :(得分:0)
您将.
字符与[^.]
取反,以便它与1
匹配。您只需不对其进行否定即可使您的小组在此之前停止。
>>> re.search('(NM_\d+)[.]', 'NM_000051.3').group(1)
'NM_000051'
与
相同>>> re.search('(NM_\d+)\.', 'NM_000051.3').group(1)
但是毕竟为什么不让它匹配直到找不到数字?
re.search('(NM_\d+)', 'NM_000051.3').group(1)