textpad正则表达式

时间:2013-06-27 04:40:07

标签: regex newline textpad

请给我一些关于在字母表之前删除换行符并忽略以>开头的行的建议。 例如:

>gi|16802049|ref|NP_463534.1| chromosomal replication initiation protein [Listeria monocytogenes EGD-e]
MQSIEDIWQETLQIVKKNMSKPSYDTWMKSTTAHSLEGNTFIISAPNNFVRDWLEKSYTQFIANILQEIT
GRLFDVRFIDGEQEENFEYTVIKPNPALDEDGIEIGKHMLNPRYVFDTFVIGSGNRFAHAASLAVAEAPA
KAYNPLFIYGGVGLGKTHLMHAVGHYVQQHKDNAKVMYLSSEKFTNEFISSIRDNKTEEFRTKYRNVDVL
LIDDIQFLAGKEGTQEEFFHTFNTLYDEQKQIIISSDRPPKEIPTLEDRLRSRFEWGLITDITPPDLETR
IAILRKKAKADGLDIPNEVMLYIANQIDSNIRELEGALIRVVAYSSLVNKDITAGLAAEALKDIIPSSKS
QVITISGIQEAVGEYFHVRLEDFKAKKRTKSIAFPRQIAMYLSRELTDASLPKIGDEFGGRDHTTVIHAH
EKISQLLKTDQVLKNDLAEIEKNLRKAQNMF

>gi|16802050|ref|NP_463535.1| DNA polymerase III subunit beta [Listeria monocytogenes EGD-e]
MKFVIERDRLVQAVNEVTRAISARTTIPILTGIKIVVNDEGVTLTGSDSDISIEAFIPLIENDEVIVEVE
SFGGIVLQSKYFGDIVRRLPEENVEIEVTSNYQTNISSGQASFTLNGLDPMEYPKLPEVTDGKTIKIPIN
VLKNIVRQTVFAVSAIEVRPVLTGVNWIIKENKLSAVATDSHRLALREIPLETDIDEEYNIVIPGKSLSE
LNKLLDDASESIEMTLANNQILFKLKDLLFYSRLLEGSYPDTSRLIPTDTKSELVINSKAFLQAIDRASL
LARENRNNVIKLMTLENGQVEVSSNSPEVGNVSENVFSQSFTGEEIKISFNGKYMMDALRAFEGDDIQIS
FSGTMRPFVLRPKDAANPNEILQLITPVRTY

应该是直线,而在以“>”开头的行之前的换行符不应该删除。我试过了

\n^[a-z]

但它也删除了每行的第一个字母。是否可以在不删除每一行的第一个字母表的情况下执行相同的操作,并忽略以“>”开头的行。 thax提前。我正在寻找一个用于写字板的代码。

2 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式

 [\r\n]+(?=[a-zA-Z])

并将其替换为empty string

OR

[\r\n]+([a-zA-Z])

并将其替换为\1$1,无论哪个有效

答案 1 :(得分:0)

我通过在perl中使用正则表达式解决了这个问题。对于那些将来需要这样的人

use warnings;

print "Please enter the name of the file\n";
my $n =<STDIN>;

print "Please enter the name of the output file\n";
my $n1=<STDIN>;

open(INFO,"$n") or die "cannot open";
@a = <INFO>;

#print @a;

foreach(@a)
    {
        $_ =~ s/\n//g;
        $_ =~ s/>/\n>/g;
    }
#print @a;
open (MYFILE, ">$n1");
print MYFILE @a;
close(MYFILE);
close(INFO);

这非常简单。