Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python正则表达式替换_Python_Regex_String - Fatal编程技术网

python正则表达式替换

python正则表达式替换,python,regex,string,Python,Regex,String,我需要在大量类似于下面给出的字符串中找到“taxid”的值。对于此特定字符串,“taxid”值为“9606”。我需要抛弃一切。“taxid”可能出现在文本中的任何位置,但后面总是跟着“:”和数字 score:0.86|taxid:9606(Human)|intact:EBI-999900 如何在python中为此编写正则表达式 >>> import re >>> s = 'score:0.86|taxid:9606(Human)|intact:EBI-999

我需要在大量类似于下面给出的字符串中找到“taxid”的值。对于此特定字符串,“taxid”值为“9606”。我需要抛弃一切。“taxid”可能出现在文本中的任何位置,但后面总是跟着“:”和数字

score:0.86|taxid:9606(Human)|intact:EBI-999900
如何在python中为此编写正则表达式

>>> import re
>>> s = 'score:0.86|taxid:9606(Human)|intact:EBI-999900'
>>> re.search(r'taxid:(\d+)', s).group(1)
'9606'
如果有多个taxid,请使用
re.findall
,它将返回所有匹配项的列表:

>>> re.findall(r'taxid:(\d+)', s)
['9606']
如果有多个taxid,请使用
re.findall
,它将返回所有匹配项的列表:

>>> re.findall(r'taxid:(\d+)', s)
['9606']

是否有多个
taxid
s?另一方面,您的描述不是替代,而是搜索。是否有多个
taxid
s?另一方面,您的描述并不是一个替代词,而是一个搜索词。可能在上面加上一个初始词,以避免匹配“not_a_taxid:9606”?@DSM:根据您的建议进行更新。@StevenRumbalski,谢谢。但是Python快把我逼疯了。为什么我得到的结果是tuple。有时我会以字符串的形式得到结果。@好奇:
re.findall
如果正则表达式中有多个组(括号定义一个组),则返回一个元组。@StevenRumbalski:我对正则表达式不太在行,但是否有办法拼写“字符串的开头或|”?否则新版本一开始就赶不上taxid。也许在上面加上一个初始术语,以避免匹配“not_a_taxid:9606”?@DSM:根据您的建议更新。@StevenRumbalski,谢谢。但是Python快把我逼疯了。为什么我得到的结果是tuple。有时我会以字符串的形式得到结果。@好奇:
re.findall
如果正则表达式中有多个组(括号定义一个组),则返回一个元组。@StevenRumbalski:我对正则表达式不太在行,但是否有办法拼写“字符串的开头或|”?否则,新的一开始就赶不上出租车。