regex - perl 正则表达式,删除捕获的内容

标签 regex perl match

我已经用这个成功地捕获了数据:

/^.{144}(.{15}).{34}(.{1})/

结果是:

TTGGCCCCCACTCTC T

我想从相同的位置删除相同的字符。我尝试了一个简单的替换:

s/^.{144}(.{15}).{34}(.{1})//

这将删除所描述的所有内容。如何仅删除 (...)?

最佳答案

替换的工作方式如下

s/match/replace/

因此它将用“替换”替换您的完整“匹配”。如果您想保留部分匹配项,则必须在替换字符串中设置组的引用。

s/^.{144}(.{15}).{34}(.{1})//     # replace all with nothing
s/^.{144}(.{15}).{34}(.{1})/$1/   # replace all with group 1 (.{15}) -> not what you want
s/^(.{144}).{15}(.{34}).{1}/$1$2/ # keeps group 1 and 2 and removes ".{15}" between them and all at the end.

你需要的最后一个。

尝试 regex101 .在那里你可以给出一个模式,它会向你显示组。还有一个调试器。

关于regex - perl 正则表达式,删除捕获的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67767231/

相关文章:

ruby - 检查低效的正则表达式

javascript - 如何在字符之间进行匹配但不将它们包含在结果中

python - 正则表达式 - 提取列表中以大写字母开头的子字符串,并带有法语特殊符号

regex - 正则表达式从以特定字符串开头的行中删除空格

perl - 在不使用 eval 的情况下从标量变量创建 VSTRING

perl - shell/mac终端中的二维码生成

xml - 使用Perl写入xml时遇到问题

jquery - 从多个类中获取包含字符串和数字的类

javascript - 当正则表达式匹配空字符串时,是否可以用 regexp.exec 循环模拟 string.match?

可选尾部斜杠的正则表达式匹配