タグ付けされた質問 「regular-expressions」

検索または置換文字列を指定するパターン用です。「regex」または「regexp」とも呼ばれ、パターンは検索または置換時に一致する文字列を記述します。Emacsは多くのコマンドで `regex`パターンの広範なサポートを提供します。Emacsはまた、そのようなパターンのためのインタラクティブな式ビルダーを提供します。

2
emacs align-regexpの理解
私はEmacsのドキュメントを読みましたが、align-regexpそれがどのように機能するかを理解するのはまだ困難です。私が話しているのはC-uM-xalign-regexp単純な形式ではなく、その接頭語の形式M-xalign-regexpです。私の質問は次のとおりです。 最初のパラメーター(正規表現)は、文字列の行全体と一致する必要がありますか?正規表現が文字列の一部にのみ一致する場合はどうなりますか? 2番目のパラメーターに何を指定するか(修正するための括弧グループ(負の場合は正当化))ここで理解したように、キャプチャされたグループ番号(1からカウント)を提供する必要がありますか?「負の場合に揃える」とは、グループ3を右揃えにしたい場合-3、入力として供給することを意味しますか? 3番目のパラメーター「間隔の量(または負の場合は列)」はどういう意味ですか?私はこのパラメーターが何をするのか全く理解していません。 練習のためにいくつかのテキスト例を集めました。誰もが例として以下のテキストを使用できる場合、非常に役立ちます。 から class CreateStudents < ActiveRecord::Migration def change create_table :students, :comment => "学生信息表" do |t| t.string :political_status, :comment => "政治面貌" t.string :education_level, :comment => "培养层次" t.string :enroll_method, :comment => "入学方式" t.date :enrolled_at, :comment => "入学时间" t.string :charge_type, :comment => "收费类别" t.string :enrolled_year, :comment => "学籍年度" t.string …

1
regexビルダーで作成された正規表現が、インタラクティブな正規表現とは異なる構文を使用するのはなぜですか?
したがって、正規表現ビルダー(Mx re-builder)を使用して、\で終わる行を見つけるには「\\ $」を使用しますが、検索および正規表現で置換する場合は「\ $」のみを使用します。正規表現ビルダーが直接使用可能な式を構築することを期待していましたが、この違いを説明するものは何ですか?

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

6
バッファ内のすべての正規表現の一致をリストとして取得します
今日のCode Golf Stack Exchangeサイトで、「Webページ上のすべてのリンクを取得する」という質問に対するClojureのこの回答を見つけました。 (->> (slurp "http://www.stroustrup.com") (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+")) 派手なマクロなしで、それはちょうどこれです: (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp "http://www.stroustrup.com")) これはリストを返します: ("http://www.morganstanley.com/" "http://www.cs.columbia.edu/" "http://www.cse.tamu.edu" ...) Emacs Lispで同様のことができますか? おそらくそのような関数(re-seq regexp (buffer-string))は返します'(firstmatch secondmatch thirdmatch ...)か?

3
Elisp正規表現^および$ vs `および '
マニュアルでは、正規表現の特殊文字^とについて説明してい$ます。私が知っているほとんどの正規表現方言のように、それらは文字列の開始または終了に一致するようです。しかし、私もそこにあることを発見した`と'の文字が利用可能。ここにある説明に基づいて、文字列の開始または終了にも一致するようです。誰かがこれらの特殊文字の違いを、それらを使用する場合の例と推奨事項とともに説明していただけますか? の値を見ると、auto-mode-alist文字列の終わりに一致するように交換可能に使用されているようです: (... ("\\.scss\\'" . scss-mode) ("\\.ya?ml$" . yaml-mode) ...)

1
rxで動的正規表現を作成するにはどうすればよいですか?
rxランタイム値を使用して正規表現を作成するために使用したい。 現在、私はこれをやっています: (setq strings '("foo" "bar" "baz")) (eval `(rx symbol-start (or ,@strings) symbol-end)) ただし、の使用は避けたいevalです。私は見つけましたがrx-to-string、どのフォームを書くべきかは明確ではありません: ;; error: Unknown rx form `symbol-start (rx-to-string '(symbol-start (or ,@strings) symbol-end)) rx実行時に式を作成するにはどうすればよいですか?

2
Perlの正規表現をインタラクティブにテストおよび使用するにはどうすればよいですか?
テキスト付きのバッファがあるとします。バッファーに対して正規表現(理想的にはPerlタイプ)をテストし、Emacsにその一致を強調表示させたいと思います。 たとえば、次の正規表現(ウィキペディアから取得): (?<=\.) {2,}(?=[A-Z]) 次のテキストで次のように一致します。 この正規表現は、特に、ピリオドの後(.)、大文字の前にある少なくとも2つのスペースに一致します。 Emacs はPerlの正規表現用のインタラクティブな正規表現マッチャーを提供しますか? 後者の答えがノーの場合: Perlの正規表現のネイティブサポートがEmacsで(一度も)考慮されなかった理由はありますか?(Unix / Linuxでよく知られている標準であることを考慮して) このようなPerl正規表現マッチャーの構築をどのように進めることができますか?(おそらく、Perlを内部で呼び出すか、Perlの正規表現をサポートされているバリアントに事前に変換しますか?)


3
vimのsedスタイルの置換コマンドに相当するものはありますか?
vimで見落としていることの1つは、複数行で機能する置換コマンドを入力できることです。たとえば、 :/begin/,/end/s/foo/bar/g 上記のコマンドは、「begin」を含む最初の行で始まり、「end」を含む次の行で終わる「bar」を「foo」に置き換えます。 emacsで似たようなことをする方法はありますか?

7
Emacsでインタラクティブに検索と正規表現による置換を練習するにはどうすればよいですか?
正規表現を使用した検索と置換は、これらのアクションを定期的に実行できるEmacsユーザーにとって明らかに強力なツールです。ただし、Emacs(および/またはプログラミング)の初心者として、正規表現を習得する必要があります。 組み込みのEmacsチュートリアルと同様に、Emacsでインタラクティブに正規表現を学習およびトレーニングできますか?そうでない場合、Emacsを利用して検索と置換のための正規表現の使用を練習する他の提案は何ですか?

2
指定された文字列をインクリメンタルに置き換える
以下のようなテキストがあるとします。 AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) AC(nn) 今私はそのnnような数字で置き換えたいです AC(0) AC(1) AC(2) AC(3) AC(4) AC(5) AC(6) AC(7) AC(8) AC(9) AC(10) 私は以前M-x replace-regexp nn RET \# RETこれを達成していました。 質問: 交換番号をから1ではなく、から始めたい0。むしろ、指定された数字から始めると言う25。上記のコマンドをどのように変更すればよいですか? 、... 、などのnn数字に置き換える方法-先行ゼロを意味します001002998999

1
正規表現のサポートは後ろ向きと前向きですか?
次のような正規表現クエリ置換を実行する必要があります foofoo bar一致しているが、foo中にはfoo bazありません。通常、私は先​​読みの正規表現を使用しますfoo(?=bar)。 しかし、Emacsはこれを行うことができないようですか?Vimは機能しているようですが、spacemacsの悪モードはできません。

1
発音記号やアクセント記号なしでアラビア語のテキストを検索する方法は?
アラビア語には、他のいくつかの言語と同様に、発音を強化するための発音区別符号があります。1つの単語に対していくつの発音区別符号を書く必要があるかについての規則はありません。発音を明確にするのに十分なだけ(私が好む)の最小値を使用するものもあれば、不必要に、または単に書道の美的目的で使用するものもあります。したがって、1つの単語に関連付けられている発音区別符号の内容と数には、さまざまなバリエーションがあります。をisearch-forward/backward押して実行するC-s/rと、発音区別符号なしで検索ミニバッファーに入力すると問題が発生し、発音区別符号が含まれている場合、テキスト内の同じ単語と一致しないため、発音区別符号が含まれる可能性のあるこの単語を検索するタスクが不十分になります。 分音記号を認識しない検索/正規表現検索を作成する方法はありますか?私は含むように拡張することができる答えがあるだろう願っていますregexp C-M-s/rし、grep私は、マルチファイルラテックスプロジェクト内の単語を探すために舵-発射でかなり頻繁に使用することを検索します。 更新 オンデマンドでプレフィックスによってオフにされる可能性があるデフォルトの動作としてステップを照合する前に、テキストのステップを取り除く(アクセント/発音記号/名前を付ける)ことを行うすべての検索機能でEmacsが表示されるのを見るのは素晴らしいことです手元にある言語に関係なく。通常、私が最高のエディター(Emacs)に期待しない何かを検索すると、平凡なテキストの雑用を達成するために必要になることのある発音区別符号またはアクセントがあるため、この用法で失敗することがあります。

1
「振り返る」パフォーマンス
私はいくつかのコードを使用してい(looking-back … (line-beginning-position))ます。looking-back遅いので、この関数は避けた方がよいとのドキュメントの文字列。私は次のアプローチがより速くなることに興味がありますか? (save-excursion (goto-char (line-beginning-position)) (looking-at regexp stuff))

1
悪モードと正規表現
Vimで、Xが数値であるLXのすべての変数名を検索する場合は、単にと入力し/L\dます。ただし、これはで動作しないようですevil。 Evilモードでの正規表現に別の構文はありますか、または正規表現を使用して検索と置換を行うために一部のEmacs機能にフォールバックする必要がありますか? 私はを使用していますがspacemacs、Emacsのほとんどのことについては無知です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.