在 regex101 中:
在我的瀏覽器控制臺中:
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"
uj5u.com熱心網友回復:
這一切都很好,因為sed與-noption 和pflag一起使用的命令只列印不匹配的文本 成功替換的結果。
這意味著,你可以得到你的“匹配”
echo '"AbCd123|99999"' | sed -En 's/["|]*([^"|] ).*/\1/p'
請參閱 在線演示。
在這里,圖案獲得的第一個字符是不是"和|使用["|]*,然后([^"|] )一部分捕捉一個或多個字符比其他"和|,然后.*字串的其他部分相匹配。
匹配但未捕獲的所有內容都將被洗掉,因為您只要求p列印\1組 1 值(用 捕獲([^"|] ))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398895.html
標籤:javascript 正则表达式 sed 捕获组
上一篇:重命名包含特殊字符的熊貓資料框列
