Regex 字符串上的正则表达式

Regex 字符串上的正则表达式,regex,Regex,我在一本书中写了这个正则表达式 正则表达式:(^A.*\..\s)\\\\(\sS.*:\sA.*.\sN...\s))\\\\\(\sN.+)/g 正文: AT1G01010.1 |符号:ANAC001,NAC001 |包含蛋白质1的NAC结构域 |chr1:3760-5630正向长度=429 我能够检测到上面文本中的第一个字符串|第二个字符串|第三个字符串| 我想使用正则表达式消除上面文本中的第二部分(“符号:ANAC001,NAC001”)。有人能帮忙吗?或者我需要一个正则表达式来只检测第

我在一本书中写了这个正则表达式

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

正文:

AT1G01010.1 |符号:ANAC001,NAC001 |包含蛋白质1的NAC结构域 |chr1:3760-5630正向长度=429

我能够检测到上面文本中的第一个字符串|第二个字符串|第三个字符串|


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

您到底想做什么?您提供的常规ex将搜索整个文本并返回匹配的文本。所以你把正则表达式当作一个整体。如果只需要抓取第1部分和第3st部分,则需要对同一文本执行两次单独的正则表达式,并将结果合并在一起。

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

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

试试看:

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

您想删除第二部分吗?不,它匹配所有三个字符串。注意:您的匹配结果在捕获组
1
2
中,感谢4实况演示。工作正常:)