【发布时间】:2021-12-30 20:20:20
【问题描述】:
在 regex101 中:https://regex101.com/r/FM88LA/1
在我的浏览器控制台中:
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"
【问题讨论】:
-
这和 bash 有什么关系?您正在使用 sed。
-
sed 使用扩展的 posix,它不适用于您的标准 pcre
-
你不需要在正则表达式中转义
"。 -
预期输出是什么?在第一个命令中,捕获组包含整个匹配项,因此您只需将其替换为自身,输出与输入相同。
-
在第二个命令中,捕获组不包含
",因此它删除了"。
标签: javascript regex sed capture-group