Regular-Expression
定位:正則表達式重複後綴運算符不適用於 –regextype emacs
我有一些文件,其名稱的形式
krita-NN.kra
是NN
一個具有一到兩位數字的數字。我想讓locate
他們使用 Emacs 正則表達式。但是,Emacs 正則表達式的重複後綴運算符(\{n, m\}
,\{n\}
) 似乎不被locate
. 具體來說,兩者
locate --regex --regextype emacs 'krita-[0-9]\.kra$'
locate --regex --regextype emacs 'krita-[0-9][0-9]\.kra$'
返回相關結果,但在以下工作中沒有正則表達式
locate --regex --regextype emacs 'krita-[0-9]\{1,2\}\.kra$
;locate --regex --regextype emacs 'krita-[0-9]\{1\}\.kra$
.即使沒有轉義大括號。
問題:是否
locate
接受手冊頁中聲稱的 Emacs 正則表達式?注意:
- 這個問題不是在尋找替代解決方案,例如使用
find
或其他正則表達式類型。locate
版本:locate (GNU findutils) 4.7.0
根據@Stéphane Chazelas 的建議,與Emacs regex
info -n emacs locate
不同,Texinfo 文件 ( ) 沒有為 regex 指定重複運算符。相反,正則表達式類型以我期望的語法支持它。即,emacs``grep
locate --regex --regextype grep 'krita-[0-9]\{1,2\}\.kra$
解決了這個問題。