正则表达式用于字母之间具有恒定字母距离的字母 - python

我正在尝试将单词与字母之间具有恒定字母间距的单词匹配,例如,我想找到所有带有A.*BB.*CC.*D等的单词。我目前正在使用Python 3中的“ re”包。

是否有某种方法可以不指定所有距离为1的字母的元组?即不是(A.*B|B.*C|C.*D|....|Y.*Z)

我正在寻找一些可靠的解决方案,该解决方案将在需要许多组(如果甚至存在)的更复杂的情况下工作。

python参考方案

“ A”的序数是97,而“ B”的序数是98,依此类推。您可以定义一个列表解析来满足您的需要。例如

distance = 1
regex = '(' + '|'.join("{}.*{}".format(chr(x), chr(x+distance)) for x in range(ord('A'), ord('Z')+1-distance)) + ')'
print(regex)
>>> (A.*B|B.*C|C.*D|D.*E|E.*F|F.*G|G.*H|H.*I|I.*J|J.*K|K.*L|L.*M|M.*N|N.*O|O.*P|P.*Q|Q.*R|R.*S|S.*T|T.*U|U.*V|V.*W|W.*X|X.*Y|Y.*Z)
distance = 2
regex = '(' + '|'.join("{}.*{}".format(chr(x), chr(x+distance)) for x in range(ord('A'), ord('Z')+1-distance)) + ')'
print(regex)
>>> (A.*C|B.*D|C.*E|D.*F|E.*G|F.*H|G.*I|H.*J|I.*K|J.*L|K.*M|L.*N|M.*O|N.*P|O.*Q|P.*R|Q.*S|R.*T|S.*U|T.*V|U.*W|V.*X|W.*Y|X.*Z)

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

re.findall不返回全场比赛吗? - python

我有一个包含一堆字符串的文件,例如“ size = XXX;”。我第一次尝试使用python的re模块,并且对以下行为感到有些困惑:如果我在正则表达式中使用管道作为“或”,我只会看到返回的匹配项。例如。:>>> myfile = open('testfile.txt','r').read() >…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…