如何在Regex.Replace中执行此操作?

时间:2017-06-18 03:58:15

标签: python regex

我有一个非常基本的查询。我以表格格式获得了爆破结果。我目前的结果看起来像

enter image description here

我想在column2中编辑我的结果以获得输出,如下面

中所述
  

6561412(数字后跟gb之前的gi)>

     

752455730(数字后跟gb之前的gi)

     

30348501(数字后跟gb之前的gi)

我们的在线服务器提供正则表达式选项,如图enter image description here

所示

服务器enter image description here提供的示例

此工具使用带有re.sub()函数的Python正则表达式。有关Python正则表达式的更多信息,请访问:

期待您的帮助 此致

3 个答案:

答案 0 :(得分:2)

使用专栏:Column: 2
查找正则表达式:gi\|(.*?)\|gb.*
替换:\1

答案 1 :(得分:2)

如果你坚持使用正则表达式:

import re

data = "gi|6561412|gb|AF191073.1|AF191073_Stealth_virus_1_clone_3B43,_genomic_sequence"

match = re.match(r".*?\|([^|]+)", data)
if match:
    print(match.group(1))  # 6561412

但是,当你能以更低的成本进行有限的拆分时,为什么还要使用正则表达式呢?

data = "gi|6561412|gb|AF191073.1|AF191073_Stealth_virus_1_clone_3B43,_genomic_sequence"

tokenized_data = data.split("|", 2)
if len(tokenized_data) >= 1:
    print(tokenized_data[1])  # 6561412

答案 2 :(得分:0)

谢谢,每个人,下面提到的答案都有效

查找正则表达式:p()

替换:.*?\|(.*?)\|.*?\|(.*?)\|.*