gpt4 book ai didi

javascript - 正则表达式捕获组适用于 Javascript 和 regex101,但不适用于 sed

转载 作者:行者123 更新时间:2023-12-05 03:31:58 26 4
gpt4 key购买 nike

在正则表达式 101 中:https://regex101.com/r/FM88LA/1

enter image description here

在我的浏览器控制台中:

x='"AbCd123|999"';
"\"AbCd123|999\""
x.match(/[^\""|]+/)
Array [ "AbCd123" ]

在 shell 中使用 sed:

(base) balter@winmac:~/winhome/CancerGraph/TCGA$ echo '"AbCd123|99999"' | sed -En 's/([^\"|]+)/\1/p'
"AbCd123|99999"
(base) balter@winmac:~/winhome/CancerGraph/TCGA$ echo '"AbCd123|99999"' | sed -En 's/\"([^|]+)/\1/p'
AbCd123|99999"

最佳答案

没关系,因为 sed 命令与 -n 选项和 p 标志一起使用,只打印不匹配的文本 +成功替换的结果。

这意味着,您可以“匹配”

echo '"AbCd123|99999"' | sed -En 's/["|]*([^"|]+).*/\1/p'

参见 online demo .

这里,模式到达第一个不是 "| 的字符,["|]*,然后是 ([^"|]+) 部分捕获除"| 之外的一个或多个字符,然后是.*匹配字符串的其余部分。

所有匹配但未捕获的内容都被删除,因为您只要求 p打印 \1,第 1 组值(使用 ([^ "|]+)).

关于javascript - 正则表达式捕获组适用于 Javascript 和 regex101,但不适用于 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70536317/

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