將此字串保存在檔案中,并且只想提取相對鏈接:
<a href="/FreeCAD/FreeCAD-Bundle/releases/download/weekly-builds/FreeCAD_weekly-builds-28909-2022-05-20-conda-Linux-x86_64-py39.AppImage" rel="nofollow" data-skip-pjax>
這適用于https://regexr.com/6m4vg:
/FreeCAD/[^]*AppImage
但在 grep 中不回傳任何內容。
grep -E '/FreeCAD/\[^]*AppImage' somefile
我怎樣才能讓它作業?謝謝。
編輯:源檔案:
wget https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds
期望的輸出:
/FreeCAD/FreeCAD-Bundle/releases/download/weekly-builds/FreeCAD_weekly-builds-28909-2022-05-20-conda-Linux-x86_64-py39.AppImage
uj5u.com熱心網友回復:
您需要使用[^"]*而不是[^]*:
grep -o '/FreeCAD/[^"]*AppImage' somefile
/FreeCAD/[^]*AppImage在線作業,因為您針對 ECMAScript 引擎測驗模式,但grep -E使用 POSIX ERE 正則運算式風格,其中否定括號運算式不應為空。
[^]在 ECMAScript 正則運算式風格中匹配任何字符,所以在這里,由于grep逐行作業,您可以將其替換為.*.
但是,由于要匹配的文本不能包含",因此您還可以使用更合適的[^"]*模式來匹配除字符之外的零個或多個字符"。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479779.html
上一篇:跳過轉義終止符的Nom決議器
