gpt4 book ai didi

可能需要每行捕获多个表达式的正则表达式 (sed)

转载 作者:行者123 更新时间:2023-12-01 12:50:08 25 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来捕获文件中的名称,其中某些行可能有 2 个或更多名称需要捕获。

例如,我想带一个文件:

Field_1 \t Field_2 \t Field_3 \t JGN;Name=hsa-123;J4N9;Name=cfa-241-b
Field_1 \t Field_2 \t Field_3 \t JPN;Name=hsa-1323;JJ39;Name=cfa-255-b;Name=hsa-188

并返回一个输出文件:
Field_1 \t Field_2 \t Field_3 \t hsa-123; cfa-241-b
Field_1 \t Field_2 \t Field_3 \t hsa-1323;cfa-255-b;hsa-188

我使用正则表达式如下:
sed 's/\(.*\)\t\(.*\)\t\(.*\)\t.*\;Name=\(.*\);.*/\1\t\2\t\3\t\4\;\4/g'

但这只会返回名字。任何建议将不胜感激

最佳答案


sed 's/\([[:space:]]\|;\)[[:alnum:]]*;/\1/g; s/Name=//g'

为你工作?

关于可能需要每行捕获多个表达式的正则表达式 (sed),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13076294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com