Perl与正则表达式匹配一个数字,并在字符串中匹配该数字指定的后跟字符

贝鲁蒂

我(认为我)对Perl很有经验,但是我仍然想解决一个令人讨厌的问题。我必须使用以下格式匹配一个字符串(其格式不能更改,该格式是从生物信息学软件输出的):

[\+\-][0-9]+[ACGTacgt]+

实际上,这很容易,尽管模式的重复次数[ACGTacgt]不是1或更多,而是由定义的次数,[0-9]+所以它可以是

[...whatever...]+2ac[...whatever...]
+4acta
+3atg

等等..

现在测试正则表达式是否正常工作,我只是在玩替换游戏,我尝试了以下方法:

$mystring =~ s/[\+\-]([0-9]+)[ACGTacgt]{\1}//g

不幸的是,上面的那个家伙无法正常工作,我在抱怨大括号时出错。确实,如果我定义一个合适的数字而不是\ 1,那么事情就起作用了:

$mystring =~ s/[\+\-]([0-9]+)[ACGTacgt]{1}//g

我需要它来工作,因为格式可能包含类似的序列,ac.,.+2caaa..a.c从这些序列中我必须准确地将+2ca剩余部分与其余部分分开。

一步就能做到吗?还是有我现在想念的逻辑原因,而这是不可能的?

感谢您的帮助或建议!

贝鲁蒂

咧嘴笑

{$N}正则表达式组成部分是修饰符,不能使用反向引用作为其计数。您可以使用嵌入式perl表达式解决它:

use strict;
use warnings;
my $string = 'ac.,.+2caaa..a.c';
$string =~ s/[+-]([0-9]+)(??{ "[ACGTacgt]{$1}" })//g;
print "$string\n";

请注意,嵌入式子表达式是不得已而为之的,出于明显的原因,它会阻止对正则表达式进行适当的优化-在这种情况下,必须删除匹配的子字符串,这是IMO适当的权衡方案,但是如果您的要求略有不同,则可以拆分-迭代法可能更合适。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式获取某个字符串后的第一个数字,后跟任何数据,直到该数字

来自分类Dev

正则表达式以精确匹配字符串中第一个点之后的数字

来自分类Dev

PHP正则表达式匹配指定字符前的字符串中的数字

来自分类Dev

正则表达式匹配,直到第一个数字出现在python中的字符串中

来自分类Dev

正则表达式以匹配一个以单词开头,以数字结尾或不以数字结尾的字符串

来自分类Dev

正则表达式匹配字符串中的多个数字

来自分类Dev

如何为以一个字符后跟6个数字开头的字符串编写php正则表达式

来自分类Dev

包含至少一个数字的字符串的正则表达式

来自分类Dev

正则表达式字符串开始到一个数字

来自分类Dev

如何使用正则表达式匹配后跟动态数字和特定字符串的字符串

来自分类Dev

Java正则表达式:如果右括号是字符串中的最后一个字符,则匹配圆括号中的任何数字

来自分类Dev

如何为字符串匹配编写一个正则表达式,该正则表达式以任何字母开头并以数字结尾,并且在js中介于N个字符之间

来自分类Dev

正则表达式匹配一个数字,然后跟一个符号重复多次?

来自分类Dev

Python正则表达式:如何仅增加一个数字在字符串中?

来自分类Dev

使用javascript正则表达式获取字符串中的最后一个数字

来自分类Dev

Perl匹配字符串的正则表达式包含字母/数字/点

来自分类Dev

识别时通过正则表达式选择最后一个数字(字符串+数字)

来自分类Dev

正则表达式匹配以4个空格开头,后跟5个字符和数字的字符串

来自分类Dev

用于搜索后跟 11 个数字的字符串的正则表达式

来自分类Dev

Ruby正则表达式仅匹配逗号分隔的字符串中的单个数字

来自分类Dev

使用正则表达式匹配字符串中的pos或neg两个数字

来自分类Dev

正则表达式查找仅包含数字的字符串,但仅在以 # 或 \s 开头且后跟空格时匹配

来自分类Dev

正则表达式匹配字符串中的任何字符,直到下一个匹配为止

来自分类Dev

正则表达式以匹配包含与字母一样多的数字的字符串

来自分类Dev

如何只匹配正则表达式中的第一个数字

来自分类Dev

正则表达式匹配Python中的非数字值或字符串结尾

来自分类Dev

MySQL正则表达式:如何用\ d匹配字符串中的数字?

来自分类Dev

正则表达式匹配字符串中的数字零

来自分类Dev

正则表达式以匹配括号或括号内的字符串中的数字

Related 相关文章

  1. 1

    正则表达式获取某个字符串后的第一个数字,后跟任何数据,直到该数字

  2. 2

    正则表达式以精确匹配字符串中第一个点之后的数字

  3. 3

    PHP正则表达式匹配指定字符前的字符串中的数字

  4. 4

    正则表达式匹配,直到第一个数字出现在python中的字符串中

  5. 5

    正则表达式以匹配一个以单词开头,以数字结尾或不以数字结尾的字符串

  6. 6

    正则表达式匹配字符串中的多个数字

  7. 7

    如何为以一个字符后跟6个数字开头的字符串编写php正则表达式

  8. 8

    包含至少一个数字的字符串的正则表达式

  9. 9

    正则表达式字符串开始到一个数字

  10. 10

    如何使用正则表达式匹配后跟动态数字和特定字符串的字符串

  11. 11

    Java正则表达式:如果右括号是字符串中的最后一个字符,则匹配圆括号中的任何数字

  12. 12

    如何为字符串匹配编写一个正则表达式,该正则表达式以任何字母开头并以数字结尾,并且在js中介于N个字符之间

  13. 13

    正则表达式匹配一个数字,然后跟一个符号重复多次?

  14. 14

    Python正则表达式:如何仅增加一个数字在字符串中?

  15. 15

    使用javascript正则表达式获取字符串中的最后一个数字

  16. 16

    Perl匹配字符串的正则表达式包含字母/数字/点

  17. 17

    识别时通过正则表达式选择最后一个数字(字符串+数字)

  18. 18

    正则表达式匹配以4个空格开头,后跟5个字符和数字的字符串

  19. 19

    用于搜索后跟 11 个数字的字符串的正则表达式

  20. 20

    Ruby正则表达式仅匹配逗号分隔的字符串中的单个数字

  21. 21

    使用正则表达式匹配字符串中的pos或neg两个数字

  22. 22

    正则表达式查找仅包含数字的字符串,但仅在以 # 或 \s 开头且后跟空格时匹配

  23. 23

    正则表达式匹配字符串中的任何字符,直到下一个匹配为止

  24. 24

    正则表达式以匹配包含与字母一样多的数字的字符串

  25. 25

    如何只匹配正则表达式中的第一个数字

  26. 26

    正则表达式匹配Python中的非数字值或字符串结尾

  27. 27

    MySQL正则表达式:如何用\ d匹配字符串中的数字?

  28. 28

    正则表达式匹配字符串中的数字零

  29. 29

    正则表达式以匹配括号或括号内的字符串中的数字

热门标签

归档