引用表达式早期部分的匹配项的正则表达式

2024-04-14

我正在寻找一个正则表达式,它将标识一个序列,其中文本中的整数指定表达式末尾的尾随字母数。该具体示例适用于识别堆积格式的遗传数据中的插入和删除。

例如:

如果我正在搜索的文本是:

AtT+3ACGTTT-1AaTTa

我需要匹配插入和删除,在本例中是+3ACG and -1A。整数 (n) 部分可以是任何大于 1 的整数,并且我必须捕获 n 个尾随字符。

我可以将单个插入或删除与[+-]?[0-9]+[ACGTNacgtn],但我不知道如何获取整数指定的尾随 ACGTN 的确切数量。

如果这里有明显的答案,我深表歉意,我已经搜索了几个小时。谢谢!

(UPDATE)

我通常使用 Python 工作。我能够使用 python 中的 re 模块找到的一种解决方法是调用每个 in/del 的整数和跨度,并将两者组合起来以提取适当长度的文本。

例如:

>>> import re
>>> a = 'ATTAA$At^&atAA-1A+1G+4ATCG'
>>> expr = '[+-]?([0-9]+)[ACGTNacgtn]'
>>> ints = re.findall(expr, a) #returns a list of the integers
>>> spans = [i.span() for i in re.finditer(expr,a)]
>>> newspans = [(spans[i][0],spans[i][1]+(int(indel[i])-1)) for i in range(len(spans))]
>>> newspans
>>> [(14, 17), (17, 20), (20, 26)]

生成的元组允许我切掉插入缺失。可能不是最好的语法,但它确实有效!


您可以使用正则表达式替换传递函数作为替换...例如

s = "abcde+3fghijkl-1mnopqr+12abcdefghijklmnoprstuvwxyz"

import re

def dump(match):
    start, end = match.span()
    print s[start:end + int(s[start+1:end])]

re.sub(r'[-+]\d+', dump, s)

#output
# +3fgh
# -1m
# +12abcdefghijkl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引用表达式早期部分的匹配项的正则表达式 的相关文章

随机推荐

  • 将 lambda 传递到函数模板中

    我正在学习 C 并且正在尝试实现一个二分搜索函数 该函数查找谓词所适用的第一个元素 该函数的第一个参数是一个向量 第二个参数是一个计算给定元素的谓词的函数 二分查找函数如下所示 template
  • 如何忽略 IntelliJ 中的“无法解析查询参数”错误

    我有一个疑问 Date dDateFrom String sql select a from tblA where timestamp gt ps this connection prepareStatement sql ps setTim
  • 如何测量用 PHP 编写的代码的速度? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我怎么能说哪一类 都做同样的工作 执行得更快呢 有没有软件可以测量它 你有 至少 两种解决方案 相当
  • 如何在 Visual Studio 中关闭构建定义的缓存

    在项目文件中我导入我自己的目标文件
  • Python:格式化使用“%”和“{”作为字符的正则表达式字符串

    我有以下正则表达式 它允许我使用 re split 解析 20 20 或 20 50 等百分比 0 9 1 3 我想使用字符串格式将系列标识符 即 作为 config py 的参数传递 SERIES 我尝试过的两种方法都产生了错误 新式格式
  • 如果“target”属性与某个字符串通过 jQuery 匹配,则获取该属性的值

    假设我有一些链接 a href target self a a href target self a a href target self a 如何获取以 UniqueString 开头的目标属性的值 元素的ID未知 我们需要通过 targ
  • 显示软键盘时向上移动布局?

    我在RelativeView中有一些元素设置了对齐底部属性 当软键盘出现时 这些元素被软键盘隐藏 我希望它们向上移动 以便如果有足够的屏幕空间 它们会显示在键盘上方 或者使键盘上方的部分可滚动 以便用户仍然可以看到元素 关于如何解决这个问题
  • .NET MAUI 每天运行几次的循环后台作业

    我希望后台工作每天运行 2 3 次 但更少也没关系 这只是对我的服务器的快速 api 调用 不需要更新 UI 事实上我更喜欢它在应用程序不在前台时运行 但这是另一个主题 我读过最新版本的 Android 和 iOS 甚至制造商限制了该应用程
  • 是否可以用 phongeap 目录中的其他数据库文件替换现有的 sqlite 数据库文件

    我有一个要求用其他数据库文件替换设备数据库 就像备份和存储目录 下载 备份 应用程序名称 或服务器一样 如果我们删除数据或丢失手机 那么我已经从服务器恢复数据并替换为设备数据库文件 我正在尝试使用代码 但仅替换数据库我没有得到 functi
  • scrollsToTop 不适用于 UIViewController 包含

    使用SDK 6 1 Xcode 4 6 1 我制作了一个新项目Master Detail iOS App ARC 没有故事板 然后在DetailViewController 在里面viewDidLoad我添加两个UITableView包含在
  • 我应该选择哪个 graphql-spring-boot-starter ?

    我正在考虑将 GraphQL 功能添加到我的 Spring Boot 应用程序中 我发现有两个工件可以做到这一点 One is com graphql java kickstart graphql spring boot starter另一
  • 用 Espresso 单击 EditText 的可绘制右侧

    如何才能单击 EditText 右侧可绘制对象 检查屏幕截图 我尝试了多种方法 但总是陷入困境 public static Matcher
  • 在开始动画之前修改 iPhone 动画容器视图

    我正在向我正在开发的纸牌游戏添加一些基本动画 我的第一个 iPhone 应用程序 我正在创建一个自定义 UIView 类 AnimationContainer 它从 image1 翻转到 image2 同时从 rect1 移动到 rect2
  • 阅读 Whatsapp 消息

    我想创建一个 Android 应用程序来读取收件箱以及 Whatsapp 消息 我想做一个备份之类的东西 尽管可以在 Whatsapp 中选择这样做 但我想阅读这些消息 然后从我的应用程序中备份它们 我了解到 Whatsapp 在文件系统中
  • Symfony2表单类型实体添加额外选项

    我有以下 Symfony 表单字段 它是从实体加载的下拉列表 gt add measureunit entity array label gt Measure Unit class gt TeamERPBaseBundle MeasureU
  • Python正则表达式替换

    嘿 我正在尝试找出一个正则表达式来执行以下操作 这是我的字符串 Place 08 09 2010 15 531 2 909 650 我需要用逗号分隔该字符串 尽管由于数字数据字段中使用了逗号 但分割无法正常工作 所以我想在运行分割字符串之前
  • 处理和解决“网络使用过多(后台)”的正确方法

    问题背景 当前 我们面临 网络使用过多 背景 来自 Android Vital 报告 最后30天是0 04 但我们只是好于 9 过去 30 天 0 04 基准 优于 9 由于仅好于9 看起来像是一件可怕的事情 我们决定认真研究这个问题 该应
  • 如何在 x86_64 上准确地衡量未对齐访问速度?

    In 一个答案 https stackoverflow com questions 45116212 are packed structs portable 45116730 45116730 我已经说过 在很长一段时间内 未对齐访问的速度
  • 如何始终返回index.html Tomcat

    我有一个在 Tomcat 上运行的 Angular 应用程序 但由于我已经实现了路由 如果我手动访问一个 url 我会得到一个404未找到 另外 当发生错误时 它是一个基本的服务器页面 而不是我的错误 url 页面 如何配置 Tomcat
  • 引用表达式早期部分的匹配项的正则表达式

    我正在寻找一个正则表达式 它将标识一个序列 其中文本中的整数指定表达式末尾的尾随字母数 该具体示例适用于识别堆积格式的遗传数据中的插入和删除 例如 如果我正在搜索的文本是 AtT 3ACGTTT 1AaTTa 我需要匹配插入和删除 在本例中