字符串上的正则表达式

时间:2014-07-25 14:19:27

标签: regex

我在http://www.regexr.com/

中写了这个正则表达式

正则表达式:(^A.*\..\s)\|((\sS.*:\sA.*,\sN.....\s))\|(\sN.+)/g

文字:

  

AT1G01010.1 |符号:ANAC001,NAC001 |含有NAC结构域的蛋白质1   | chr1:3760-5630 FORWARD LENGTH = 429

我能够检测到第一个字符串|第二个字符串|第3个字符串|在上面的文字中。

我想使用正则表达式消除上面文本中的第二部分("符号:ANAC001,NAC001")。有人可以帮忙吗?或者我需要一个正则表达式来仅检测第一个和第三个字符串。

3 个答案:

答案 0 :(得分:1)

考虑以下正则表达式,因为您已经在使用字符串^锚的开头。

^(A[^|]+)\s\|[^|]+\|\s*([^|]+)\s\|

Live Demo

答案 1 :(得分:0)

你到底想要做什么?您提供的常规ex将搜索整个文本并返回匹配的文本。所以你正在对整个正则表达式进行处理。如果你只想抓住第一部分和第三部分,那么你需要在同一文本上做两次单独的正则表达式并将结果合并在一起。

答案 2 :(得分:0)

试试?:

(^A.*\..\s)\|(?:\sS.*:\sA.*,\sN.....\s)\|(\sN.+)