- ベストアンサー
正規表現について教えてください
これから正規表現を勉強しようとする者です。 次の2点について教えて頂きたいのですが、よろしくお願いします。 1.次のような置換をする正規表現は? 例えば、 ■■■ あいうえお かきくけこ ■■↓ ○○○ あいうえお かきくけこ ○○○ というテキストがある場合、○○○~○○○までの「あいうえお」 のみを「アイウエオ」に置換するには、どのような正規表現にすれば 良いのでしょうか? 2.秀丸エディタでは、フォルダ内の全ファイルを一括で置換する 事はできるのでしょうか? 以上2点です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
■■■ あいうえお ■■■ ○○○ 不特定な文字 あいうえお 不特定な文字 ○○○ という内容の ○○○~○○○までの「あいうえお」と言うことであれば、 (○○○)(.*)あいうえお(.*)(○○○) でヒットすると思うので \\1\\2アイウエオ\\3\\4 に置換すれば 書き換わると思います。 ※\\1等は$1等だったり環境によって違うと思います ○○○~○○○内の「あいうえお」が複数回登場する場合 (○○○任意文字列あいうえお任意文字列あいうえお○○○)であれば、上の正規表現置換を複数回実行することで全て置換できると思います。 phpで書くと以下のようになります。 $text=" ■■■ あいうえお ■■■ ○○○ 不特定な文字 あいうえお 不特定な文字 あいうえお ○○○ "; while( preg_match("/(○○○)(.*)あいうえお(.*)(○○○)/" , $text) ) { $text = preg_replace("/(○○○)(.*)あいうえお(.*)(○○○)/" ,"\\1\\2アイウエオ\\3\\4" , $text); }
その他の回答 (2)
- ShowZ
- ベストアンサー率31% (67/210)
正規表現は万能ではありません(^^; 1. ○○○~○○○ 間だけとかいう条件は無理です. マクロを使用して下さい. 2. できます. マクロのサンプルのURL貼っておきます.
お礼
回答ありがとうございます。 マクロをダウンロードして説明を見てみました。 私の今の知識ではハードルが高いですが、 これをきっかけに調べてみたいと思います。 作業を効率化するには、それなりの勉強が必要なんですね。 なにから始めればいいやら・・・(^_^;)
- kazuhisa01
- ベストアンサー率32% (158/487)
「○○○ あいうえお」を検索文字に、「○○○ アイウエオ」を置換文字にすれば置換できるはずです。 秀丸では無理だったと思います。 一括置換する場合は、フォルダ内の全てのファイルを1つのテキストエディタで開く必要があるので。
補足
回答をありがとうございました。 申し訳ありません。 例が間違ってました。 質問は次のような前後に不特定のテキストがある場合でした。 つまり、 1つのファイルの中でも、○○○~○○○までの中でというように、 ある範囲の中にあるテキストのみを置換したいのです。 ■■■ あいうえお ■■■ ○○○ 不特定な文字 あいうえお 不特定な文字 ○○○ 失礼しました。 よろしくお願いします。
お礼
回答ありがとうございます。 私の今の知識では分からない部分もありますが、アドバイスを元に調べながらやってみたいと思います。 詳しく書いて頂いてありがとうございました。