質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

解決済

1回答

7826閲覧

Atom(テキストエディタ)で行頭にマッチする正規表現

think49

総合スコア18156

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

1クリップ

投稿2015/10/27 09:37

編集2015/10/28 08:09

Atom(テキストエディタ) において次の正規表現で行頭に引用符をつけることを期待しましたが、これは期待通りに動作しませんでした。

検索: "^" 置換: "> "

次のように「改行にマッチすれば期待通りに動作しますが、出来れば「行頭」にマッチさせたいと考えています。

検索: "\n" 置換: "\n> "

そもそも、行頭にマッチさせる事が出来るのでしょうか。

(2015/10/28 17:08追記)
shiena さんのアドバイスを受けてAtomの正規表現エンジンが「1文字以上消費しなければマッチしない仕様」であるらしいことが分かりました。
https://discuss.atom.io/c/support で報告しようと3回投稿を試みましたが、エラーで投稿できず、[new post] ボタンがなくなりました。
荒らし行為の意図は全くなかったのですが、何らかの投稿制限に引っかかってしまったのかもしれません。
時間を置いて再チャレンジしたいと思いますが、私にはやや敷居が高いですね…。

I can not search the "^", "$", "(?=pattern)" by [Find in Buffer]. If you do not consume one or more characters in a search word, it does not seem to HIT to search . Does this behavior will a bug ?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

後方参照で1文字マッチさせればできそうです。

検索: ^(.) 置換: > $1

参考: Atomで正規表現の後方参照を使った置換

投稿2015/10/27 09:44

shiena

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2015/10/27 10:09 編集

ありがとうございます。 その正規表現では空行がマッチしませんでしたが、いろいろ試して下記正規表現で期待通りに動作する事が分かりました。 検索: "^([\s\S])" 置換: "> \1" 肯定先読みで下記正規表現で動作することを求めましたが、これは期待通りに動作しませんでした。 検索: "^(?=[\s\S])" 置換: "> " 私の試す限りではAtomの正規表現による検索は「1文字以上消費しなければマッチしない仕様」のようです(ex: 肯定先読みのみ、"$" のみではマッチしません)。 テキストエディタの乗り換え対象として検討しているのですが、癖があって使いづらい印象を持ちました。 この挙動は不具合だと思うのですが、製作者は認識しているのでしょうか…。
shiena

2015/10/27 10:45

現状で「1文字以上消費しなければマッチしない仕様」ならばそもそも問題と考えていないかもしれません。 ですので、プラグインを探したり掲示板に投稿したりして声をあげないと改善されないと思います。
shiena

2015/10/27 10:55

期待する動作か自信がありませんが、以下で空行も置換対象になりました。 ちょっと気持ち悪いですね。 検索: ^(.*\n) 置換: > $1
think49

2015/10/28 08:10

ありがとうございます。 https://discuss.atom.io/c/support で報告しようと3回投稿を試みましたが、エラーで投稿できず、[new post] ボタンがなくなりました。 荒らし行為の意図は全くなかったのですが、何らかの投稿制限に引っかかってしまったのかもしれません。 時間を置いて再チャレンジしたいと思いますが、私にはやや敷居が高いですね…。 --- I can not search the "^", "$", "(?=pattern)" by [Find in Buffer]. If you do not consume one or more characters in a search word, it does not seem to HIT to search . Does this behavior will a bug ?
shiena

2015/10/28 08:39

oh… 投稿以前でエラーになると萎えてしまいますね… atomの検索機能はfind-and-replaceプラグインで実現していますので、こちらは開発者に直接声が届くと思います。 https://github.com/atom/find-and-replace/issues
think49

2015/10/28 14:59

https://github.com/atom/find-and-replace/issues/497 に issue が存在することが分かりました。 2015/08/15に報告されてから修正の気配がないので迅速な修正は期待できそうにありません。弱りました。 Atom に手をつけるのは時期早々なんでしょうか…。
shiena

2015/10/28 17:10

動作は安定していると思いますが、細かい部分にバグが残っている印象です。 試しに https://github.com/atom/find-and-replace/issues/497#issuecomment-134506428 で提案されている0.175.0にダウングレードして^を置換対象にすると行頭だけではなく何故か行末にも挿入されてしまいました。 私なら代替手段があるならそちらを使いますが、think49さんに譲れないこだわりがあるのでしたら今回は見送った方がよいかもしれません。
shiena

2015/11/03 02:57

#497が修正されたので↓のインストールして試してみましたがまだバグが残っていますね… apm install find-and-replace@0.190.0 ^だけでは0.175.0と同じように行末も置換されますし、肯定先読みではヒットしません。
think49

2015/11/03 22:44

find-and-replace@0.190.0 は [設定] の [Updates] には反映されないんですね。 > apm install find-and-replace@0.190.0 どうにも使い方が分かりません。 Atom のコマンドパレットで上記コマンドを入力しましたが、無反応。 何か初歩的なミスをしている気がするのですが…。
shiena

2015/11/04 00:59

apmはatomに同梱されているパッケージ管理コマンドです。 npmのatom版みたいなものですね。
shiena

2015/11/04 01:09

^で行末が置換される原因が分かりました。 \r\nが2つの改行として扱われるので行末も置換されているようです。
think49

2015/11/12 20:26

返事が遅くなって申し訳ありません。 私が分かる範囲で試した結果、"apm install find-and-replace@0.190.0" のコマンドの実行方法は結局分からずじまいでしたが、すぐに修正される気配がない為、今回は別のエディタを使おうと思います。 多数のアドバイスを頂きましてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問