2016-07-07 29 views
1

我經常使用Kate編輯器。在凱特中使用正則表達式可以找到模式。例如,表達\d{3}會發現連續3個數字中所有出現的以下文字:使用Kate編輯器查找與正則表達式匹配的所有模式

asdfsdf 234 dffd 234 f 
d 182 sdsdas 182 sfdds 
fdsfk 324 d 890 dfsdfd 

是否有可能以某種方式提取匹配的字符串?或者乾脆說:只有使用凱特,我如何獲得以下數字?這是可能的簡單方式或可能與插件?我知道我可以例如使用蟒蛇re.findall()方法,但這不是我想要的。

234 
234 
182 
182 
324 
890 
+1

用'$ 0 \ n'替換'\ d {3}',然後用'$ 1'替換'(\ d {3})| .' –

+0

這給了我很多行,比如$ 1 $ 1 $ 1 $ 1 $ 1 $ 1什麼? – Ohumeronen

+0

也許反向引用寫成'\ 1'? –

回答

1

我2- stepapproach在於2個步驟:

  • 添加一個新行後3位與(\d{3}) - >\1\n替換(其中\1指捕獲值),然後

  • 刪除不是三位數起點的任何字符,並用(\d{3})|. - >\1替換,重新插入用捕獲組捕獲的3位數字。

(\d{3})|.模式匹配,並捕獲3位或只是比匹配換行符其他任何字符,和\1是反向引用與(\d{3})捕獲的值。

可能會出現一些空行,但通常可以使用內置功能刪除它們。

+0

感謝您的解釋。我更新了你的帖子,因爲它在\ 1而不是\ 0。 – Ohumeronen

+1

現在我也明白了。這很酷!謝謝! :-) – Ohumeronen