美文网首页
Notepad++正则表达式

Notepad++正则表达式

作者: 新_世_界 | 来源:发表于2021-07-23 10:05 被阅读0次

注意:notepad++ 不支持匹配提取。 一般操作正则表达式主要是用来匹配查找、匹配替换。这个提取问题可以使用sublime text来进行实现, SublimeText可以选中所有匹配项。另外EmEditor也可以选中正则表达式的匹配项,但是EmEditor这个软件不是开源的,也不是免费的,所以推荐还是使用sublime text。

用Notepad++ 的正则表达式简单地处理数据,我发现学会正则表达式可以起到事半功倍的作用。

下面是我最近处理的几个小案例。

案例一
首先在Ensembl Plants 的Biomart 下载转录本对应的cds序列,如下:

>TraesCS6B02G039100|TraesCS6B02G039100.1
ATGTACCGTTGTGCTGTGGTCTTTCTGATCGTGGTGGCCGCCTGCACTCCGGCCATGAGC
AGCTTTTGGCAGCAGGCCCTCCCGGGCACGCCGATGCCAGAGGCCATCGCAGACCTTGTG
CCGAAAGGCATCGATGATGCGCCTCAAGTGGAGCGCTACCCTGCATTCCCCAGCATCAGT
TTGTGCGGTGCTTGGACCGGCATGTGTACGGCGAGCTTGGCGGCACCGACGGGCATCTTC

我们希望将
>TraesCS6B02G039100|TraesCS6B02G039100.1
替换为
>TraesCS6B02G039100.1

`查找`
([A-Za-z0-9]*)(\|)([A-Za-z0-9]*\.[0-9])

`替换`
\3

这里([A-Za-z0-9]*)表示基因TraesCS6B02G039100; (\|)对应特殊符号|,特殊符号用\进行转义。([A-Za-z0-9]*\.[0-9])表示转录本TraesCS6B02G039100.1。也就是说,我们将其分为3个匹配组,正则匹配并按匹配组进行替换,最终我们将三个匹配组替换为一个匹配组,也就是第三个\3

👉注意:转录本的那个点.,也是特殊符号,同样需要用\转义。

结果如下:

>TraesCS6B02G039100.1
ATGTACCGTTGTGCTGTGGTCTTTCTGATCGTGGTGGCCGCCTGCACTCCGGCCATGAGC
AGCTTTTGGCAGCAGGCCCTCCCGGGCACGCCGATGCCAGAGGCCATCGCAGACCTTGTG
CCGAAAGGCATCGATGATGCGCCTCAAGTGGAGCGCTACCCTGCATTCCCCAGCATCAGT
TTGTGCGGTGCTTGGACCGGCATGTGTACGGCGAGCTTGGCGGCACCGACGGGCATCTTC

案例二

原始数据如下

>BAK07777.1 predicted protein [Hordeum vulgare subsp. vulgare]
MASKSASLLILAALVAAACLAGQGSAARHLPAEKPAEDVVKRPDTFQEGTVLIPGIGRYELGTHYIPDIGGLDHSIPAAANGQFIPGADDTWVPNPGFEVPNPFRPGSDSP

>KAF0905970.1 hypothetical protein E2562_008992 [Oryza meyeriana var. granulata]
MARSSSLQALLVLAVLVMAAACSTAAARSVPAEEKKTAAAEDVKQPETFHEGTVLIPGFGRFELGSHYVPDITGVDHSIPAAASGQFIPGADDTWVPNPGFEVPNPFHPGFEVPNPFHPGSASP

>RWW32695.1 hypothetical protein GW17_00002621 [Ensete ventricosum]
MPNQHLFNALNPHNLTFGGPRRIEIGSPPLVAHAPSNTPPKRKKKKKTVGFRLLRATSACATTDLHFERERSDHDRTCVITGGSTRYGPVCLPSTALQWGPRNKRVRRRVDERTPHHQYGKRGGKRGSTLPYGRPGTGKVGNPHLQAHASPPVQQAWQEARQHAPPPRVTEAPPPRIPASPTSTPNRSQSRSHNPAPTEPDLDVLSTDSTDSLREQVRRVHQRLDEVQREVLKSKDEAGESSKGGSPFTLEIHSKPLPATFRLPALEPYDGSGDPVEHVATFRAQMALYDTSEALMCRAFPTTLRGSARNWYARLKPASIPSFDVLAREFESNFLASACPRPTTASLLGMAQGSDEPLSQFVRRFTSQVQGIPDLHPSLAIQVFLTGLKPSRFFWSLIERPPTTLPEMLQRAHQYVAAETLIAGKRDEAKRPRGEQSRGNPAPPPKKREDRSGLLPARPPPIPLNSTRTEIFFQIREKGLLKAPSPMKSHPERRDKRRYCRFHREYGHDTEECRDLQYQIEDLIKRGHLRRYVREQPPLSDGRPPRDLSKTLMVPFMVVRLPSAYNAIIGRPTLNRLRAVVSTYHRVLKFPTRAGVGEVRSDPKESRQCYLAATTLCKKPRTGPINATAPDPVEDARAANQHSILYFFFLSLSVSMASCSRCPTLPLIILFLGLMSVAQVALAGRKIPANSDKKETEFLGHEGTVLIPGIGRYMIGSHEKPGFSGLDHSIPAAANGKYLPGNDDTFVPNPGYEIPNPFRGVIP

如果我们想删除>BAK07777.1 和 [Hordeum vulgare subsp. vulgare]中间的文字部分,该如何解决?

👉解决方案如下

`查找`
(.*\.[0-9])(.*)(\[.*\])

`替换`
\1\3

结果如下:

>BAK07777.1[Hordeum vulgare subsp. vulgare]
MASKSASLLILAALVAAACLAGQGSAARHLPAEKPAEDVVKRPDTFQEGTVLIPGIGRYELGTHYIPDIGGLDHSIPAAANGQFIPGADDTWVPNPGFEVPNPFRPGSDSP

>KAF0905970.1[Oryza meyeriana var. granulata]
MARSSSLQALLVLAVLVMAAACSTAAARSVPAEEKKTAAAEDVKQPETFHEGTVLIPGFGRFELGSHYVPDITGVDHSIPAAASGQFIPGADDTWVPNPGFEVPNPFHPGFEVPNPFHPGSASP

>RWW32695.1[Ensete ventricosum]
MPNQHLFNALNPHNLTFGGPRRIEIGSPPLVAHAPSNTPPKRKKKKKTVGFRLLRATSACATTDLHFERERSDHDRTCVI
TGGSTRYGPVCLPSTALQWGPRNKRVRRRVDERTPHHQYGKRGGKRGSTLPYGRPGTGKVGNPHLQAHASPPVQQAWQEARQHAPPPRVTEAPPPRIPASPTSTPNRSQSRSHNPAPTEPDLDVLSTDSTDSLREQVRRVHQRLDEVQREVLKSKDEAGESSKGGSPFTLEIHSKPLPATFRLPALEPYDGSGDPVEHVATFRAQMALYDTSEALMCRAFPTTLRGSARNWYARLKPASIPSFDVLAREFESNFLASACPRPTTASLLGMAQGSDEPLSQFVRRFTSQVQGIPDLHPSLAIQVFLTGLKPSRFFWSLIERPPTTLPEMLQRAHQYVAAETLIAGKRDEAKRPRGEQSRGNPAPPPKKREDRSGLLPARPPPIPLNSTRTEIFFQIREKGLLKAPSPMKSHPERRDKRRYCRFHREYGHDTEECRDLQYQIEDLIKRGHLRRYVREQPPLSDGRPPRDLSKTLMVPFMVVRLPSAYNAIIGRPTLNRLRAVVSTYHRVLKFPTRAGVGEVRSDPKESRQCYLAATTLCKKPRTGPINATAPDPVEDARAANQHSILYFFFLSLSVSMASCSRCPTLPLIILFLGLMSVAQVALAGRKIPANSDKKETEFLGHEGTVLIPGIGRYMIGSHEKPGFSGLDHSIPAAANGKYLPGNDDTFVPNPGYEIPNPFRGVIP

相关文章

网友评论

      本文标题:Notepad++正则表达式

      本文链接:https://www.haomeiwen.com/subject/jspumltx.html