web-dev-qa-db-ja.com

正規表現ベースのマッチングとnanoによる置換?

nanoの検索および置換機能を知っていますが、一致および置換(特に一致の一部を使用する置換)に正規表現を使用できますか?もしそうなら、(マッチングと置換の両方に)使用される構文の例をいくつか提供できますか?

私はPerlスタイルの正規表現に歯を食いしばっていますが、テキストエディタが独自の構文を思い付くことがあることがわかりました。

21
Daniel Standage

グローバルnanorcファイルに次のエントリを追加またはコメント解除する必要があります(私のマシンでは、_/etc/nanorc_でした)。

_set regexp
_

次に、新しい端末を起動してを押します CTRL/ 正規表現に対応しているはずの交換を行います。

編集


conf->(\S+)を検索します:

enter image description here


_\1_conf_に置き換えます

enter image description here


aを押して、すべてのオカレンスを置き換えます。

enter image description here


最終結果:

enter image description here

16
Bart Kiers

私のバージョンのnanoには、meta文字+ Rで正規表現検索を切り替えるオプションがあります。 Windowsのcygwinでは、メタキーはaltなので、ctrl + \を押して検索と置換モードに入り、次にaltを押します。 + rは、正規表現検索に切り替えます。

22
user151841

Nano用の正規表現形式/表記法 "拡張正規表現"、つまりPOSIX拡張正規表現、これはegrepおよびsed -rによって使用され、これにはメタ文字.[および]^が含まれます。 、$()\1から\9*{および}?+|、および[:alnum:][:alpha:][:cntrl:][:digit:][:graph:]などの文字クラス、[:lower:][:print:][:punct:][:space:][:upper:]、および[:xdigit:]

より完全なドキュメントについては、Linuxの場合はman 7 regex、OSXの場合はman 7 re_formatのマニュアルページを参照してください。このページでも同じ情報が得られる場合があります: https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended

残念ながら、nanoでは、複数の行にまたがる何かを一致させる方法がないようです。