gpt4 book ai didi

python - 选择哪个 python re 模块来翻译 perl 正则表达式

转载 作者:太空狗 更新时间:2023-10-30 01:22:38 24 4
gpt4 key购买 nike

我有 perl 正则表达式 /VA=\d+:(\S+):ENSG/,它在 if 语句中用作

if ($info =~ /VA=\d+:(\S+):ENSG/){
$gene =$1;

我想弄清楚在 python 中复制它的最佳方法是什么。现在我有

gene_re = re.compile(r'VA=\d+:(\S+):ENSG')
this_re = re.search(gene_re, info)
if this_re is not None:
gene = info[this_re.start(0):this_re.end(0)]

这样翻译好吗?我想这是 perl 实际上比 python 更具可读性的一个领域。

请注意,python 正则表达式已编译,因为接下来的三行实际上在一个循环中。

最佳答案

你可以使用

gene = this_re.group(1)

代替

gene = info[this_re.start(0):this_re.end(0)]

顺便说一句,Python re 模块缓存了 N 最近使用的正则表达式模式,所以(除非你有非常多的模式)没有必要预编译它。

对于 Python 2.7,re._MAXCACHE(即 N)为 100。

关于python - 选择哪个 python re 模块来翻译 perl 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20478859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com