Regex 从字符串末尾删除最后一个不同的K字符
如何删除每个字符串末尾的G s,并捕获其左侧的字符串Regex 从字符串末尾删除最后一个不同的K字符,regex,perl,Regex,Perl,如何删除每个字符串末尾的G s,并捕获其左侧的字符串 …tggg …ctgagggg …acaggggg …caaacagggggggg 结果是这样的。如果可能,我想在正则表达式中捕获剩余的字符串 …TGT …CTGA …ACA …CAAACA 谢谢。删除拖尾Gs很容易 s/G*$// 如果不一定是G,则可以将其与捕获组匹配 s/(.)\1*$// 如果只想在字符结尾重复时删除该字符(因此ATCG将保持不变,但atcgg将发生变化),可以使用+ s/(.)\1+$// 感谢您的解决方案。这
…tggg
…ctgagggg
…acaggggg
…caaacagggggggg
结果是这样的。如果可能,我想在正则表达式中捕获剩余的字符串
…TGT
…CTGA
…ACA
…CAAACA
谢谢。删除拖尾
G
s很容易
s/G*$//
如果不一定是G
,则可以将其与捕获组匹配
s/(.)\1*$//
如果只想在字符结尾重复时删除该字符(因此ATCG
将保持不变,但atcgg
将发生变化),可以使用+
s/(.)\1+$//
感谢您的解决方案。这样做有缺点吗。它似乎给出了同样的结果。是[ATGC]*?在我看到你的答案之前,我一直很难弄明白的部分。那将非常有效
m//
不会修改原始字符串,而s//
实际上会在适当的位置更改字符串,因此这取决于您想要从中得到什么。