改行文字に一致する正規表現は何ですか?


21

Emacsの正規表現で\nは、改行文字とは一致しません\n

  1. $改行文字と改行文字の直前の文字との間の位置に一致することを修正しますか。たとえば、文字列のabc\n場合、と ?の$間の位置に一致しますc\n
  2. 一致する正規表現とは何\nですか?

2
最低限の作業例を提供していただけますか?たぶん私は何かを見逃しているかもしれ(re-search-forward "\n")ませんが、私にとってはうまくいきます。
ダン

1
あなたのファイルは、\ rを\ nは新しい行のために使用することがあり、それはあなたがそう、あなたの正規表現で\ Rを含める必要があることかもしれabc\r\n代わりにabc\n
ジョーダンビオンド

@Dan:CMとMxは両方ともに一致\nnます。私のバッファーは基本モードです。これは、任意のテキストに何が起こるので、新しい行または文字を持つ任意のテキストは、n実施例である
ティム

@Jordon:CMとMxは両方とも一致\r\nしますrn
ティム

@Tim、はい。対話形式で入力する場合は、引用符付きの挿入、Cq Cm、およびCq Cjをそれぞれ実行する必要があるためです。Lisp文字列に入力する場合、\ r \ nを入力できます。
ジョーダンビオンド

回答:


19
  1. はい。$は、行末に一致する改行文字ではなく、行末に一致します
  2. やりますC-M-s C-q C-jC-qはデフォルトのバインディングでquoted-insertあり、ミニバッファでも機能します。この式は文字通り改行を検索します:C-j

1
2. Emacsの正規表現では、改行文字をエスケープシーケンスとして表現できないと言っていますか?
ティム

3
(例えば、対話形式またはelispのを経由して改行を探しているかどうか(looking-at "^J")どこ^ Jがで挿入されているC-q C-j)、C-q C-jアプローチが常に動作します。ただし、同じようにelisp関数を使用する場合も同様looking-at \nです。M-: (looking-at "\n") RETカーソルが行の最後にある(そしてその後に改行がある)場合、trueに評価されます。
カウシャルモディ

2
言うまでもなく、を使用regexp-builderしている場合、で新しい行を認識できます[\n]
Nsukami _

@Nsukami_:CMとMxは両方とも一致[\n]nます。
ティム

13

Danがコメントしているように、改行に一致する正規表現改行です。

elispの引用符で囲まれた文字列で改行を表すことができます"\n"。このための特別な追加の正規表現固有の構文はありません。他のリテラル文字とまったく同じように、改行を使用するだけです。

正規表現をインタラクティブに入力する場合C-qC-j、kaushalmodiの答えが指摘しているように、改行を挿入できます。


1
ありがとう!emacs(elispではない)では、Cq Cjが改行文字に一致する唯一の方法ですか?\n改行文字と一致しません。
ティム

1
はい。より具体的には、改行を入力することは、正規表現をインタラクティブに入力するときに改行文字を一致させる唯一の方法です(改行には正規表現エスケープシーケンスがないため)C-q C-j。プロンプトで改行を入力する最も信頼できる方法です。
phils
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.