如何使用反向參考通過正則運算式找到具有三個或更多相同型別元音的單詞?
我正在使用 3 列選項卡格式“Word PoS 引理”的文本進行搜索。
這是我到目前為止所擁有的:
ggrep -P -i --colour=always '^\w*([aeioue??üèéà])\w*?\1\w*?\1\w*?\t' filename
然而,這給了我三個元音但不屬于同一類的單詞。我很困惑,因為我認為后面的參考會參考它在括號中找到的同一個元音?.*?我通過將 更改為解決了這個問題\w*。
謝謝您的幫助!
uj5u.com熱心網友回復:
您的正則運算式看起來太復雜了,不確定您要嘗試完成什么,.*?但用法看起來很可疑。我會使用類似的東西:
([aeioue??üèéà])\1\1
即匹配一個元音作為一個捕獲組,然后說你還需要兩個。
沒有意識到您想在元音之間允許其他字母,只在反向參考之間允許零個或多個“單詞”字母:
([aeioue??üèéà])(\w*\1){2}
uj5u.com熱心網友回復:
我建議使用 GNU grep:
grep -E --colour=always -i '\b\w*([aeioue??üèéà])(\w*\1){2,}\w*'
請參閱:堆疊溢位正則運算式常見問題解答
uj5u.com熱心網友回復:
使用grep
$ grep -E '(([aeioue??üèéà])[^\2]*){3,}' input_file
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512509.html
