【问题标题】:Fuzzy regex matching with python returns empty list与python匹配的模糊正则表达式返回空列表
【发布时间】:2023-03-24 02:37:01
【问题描述】:

我首次尝试使用 python 2.7 中的re 模块进行模糊模式匹配。

不幸的是,我所做的每一次尝试都会返回一个空列表。我根本不明白所需的语法。我想知道是否有人可以告诉我为什么下面的代码:

import re
m = re.findall('(ATCT){e<=1}', 'ATCGATCGGCATGCAGTGCAGAAGTGACGAT')
print m

返回一个空列表?

【问题讨论】:

  • 你的预期输出是什么?
  • 你只对解释感兴趣吗?不在解决方案中?你的正则表达式是一团糟。它匹配ATCT 后跟{e&lt;=1} - 这些是文字字符序列。见what it matches
  • @AvinashRaj 模式应该与字符串中的多个位置匹配一次,输出应该是这些模式的列表。
  • @WiktorStribiżew 我对两者都感兴趣。
  • 如果您对解决方案感兴趣,请解释-说明-您需要获得什么。

标签: python regex fuzzy pypi-regex


【解决方案1】:

由于您打算使用PyPi regex module,因此您需要使用

>>> import regex
>>> m = regex.findall('(ATCT){e<=1}', 'ATCGATCGGCATGCAGTGCAGAAGTGACGAT')
>>> print(m)
['ATCG', 'ATCG']

【讨论】:

  • 谢谢。我没有意识到它们是不同的模块,因为我不知道它们之间的区别。作为后续问题,有没有办法使用 re 模块执行此操作?
  • re 模块无法做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多