2014-01-10 26 views
0

我想知道我怎么能具体合并使用正则表达式中的记事本线++,有例外以字符开始线“>”合并线与正则表达式,与例外的某些行

,用于: enter image description here

我希望能够连接2,3,4; 6,7,8;和10,11,12;但不是1,5或9.在记事本++中,我可以选择要加入的行,并使用扩展查找/替换(查找:“\ r \ n”;替换:“”)加入选择内的线。但是,我有超过11,626行需要加入忽略带有“>”的行,所以手动这样做不是一种选择。

*注意:上图显示每个条目具有相同的行数,但情况并非总是如此。

编辑:请求了一些实际的代码,最初没有发布,因为“>”将文本格式化为代码块。每个代码snipplet前加入语录所以 “>” 的现身:

> Boechera_canadensus AACGACTCTCGGCAACGGATATCTCGGCTCTCGCATCGATGAAGAACGTAGCGAAATGCGATACTTGGTG TGAATTGCAGAATCCCGTGAACCATCGAGTCTTTGAACGCAAGTTGCGCCCCAAGCCTTTCGGCCGAGGG CACGTCTGCCTGGGTGTCAC
> Carex_pellita AATATGACTCTCGGCAACGGATATCTCGGCTCTCGCATCGATGAAGAACGTAGCGAAATGCGATACGTGG TGTGAATTGCAGAATCCCGTGAACCATCGAGTCTTTGAACGCAAGTTGCGCCCGAGGGACCCTCCCGAGG GCACGCCTGCCTCATGGGCGTTAGAA
> Carex_lacustris AATATGACTCTCGGCAACGGATATC TCGGCTCTCGCATCGATGAAGAACGTAGCGAAATGCGATACGTGG TGTGAATTGCAGAATCCCGTGAACCATCGAGTCTTTGAACGCAAGTTGCGCCCGAGGGACCCTCCCGAGG GCACGCCTGCCTCATGGGCGTTAGAA

+0

请,给我们的样品线,而不是一个图像,然后我们就可以轻松地测试我们的复制/粘贴的解决方案。 – Toto

+0

问题是我复制/粘贴时无法显示“>”,因为它是用于区分代码块的相同字符。 – user1301593

+0

你可能实际上是用一个领先的\来逃避''',看到我对你的问题的编辑:) –

回答

1

这应该为你工作:

enter image description here

工作示例:

(^[^>].*?)\n(?!>) 

,则与第一捕获组$1替换http://regex101.com/r/yZ4nT0

解释:

  • 我们符合所有线路无法启动与>,使用非贪婪匹配每个字符.*?
  • 我们包裹在一个捕捉,但不包括\n(新线)
  • 使用负向预览(?!>)我们确保我们只捕获不在另一个之前的行>
+0

嗯,似乎不适合我的数据。我会用附加的链接工作示例来调整。感谢那! – user1301593

0

您可以使用此:

find: (?<=[ACTG])\r?\n(?=[ACTG]) 
replace: nothing