• ベストアンサー

正規表現の$について

aaa とある行の後ろにbbbを付けるには 検索条件 $ 置換内容 bbb で、aaabbbになると思うのですが、 aaa bbb と、行末ではなく次行に挿入されます。 Speeeeedを使って、一括置換を試みています。 上記の原因が判らず困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

ありそうな事 ・Speeeeedでの$が通常の正規表現と違う ・Speeeeedでの改行の扱いとテキストの改行に差違がある  (LFしか変換しないがテキストがCRLFだったのでCRで改行されている…など) 改行と行末の反応の仕方はSpeeeeedのマニュアルか何かに書いてないかな?

valvalval
質問者

お礼

回答有難うございます。 ヘルプをよく見たら、正規表現検索の所に注意書きがありました。 おかげで助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 秀丸の正規表現を使って置換

    三番目の引数が0かNULL、nullならば、以下のように秀丸で置換したいのですが、やり方がわかりません。正規表現を使って置換したいです。 abcmethod(aaa, bbb, 0, ccc)やabcmethod(aaa, bbb, null, ccc)    ↓↓↓↓↓↓ abcmethod(aaa, bbb, ccc) aaa,bbb,cccは任意の文字半角アルファベットや数値です。 abcmethod(.+,.+,.+,.+)で、検索できますが、置換の仕方がわかりません。 どうぞよろしくお願いします。

  • 正規表現について

    正規表現で、最初に出てきた条件に合うものだけマッチさせて置換したく、それ以降に条件に合うものがあってもマッチさせたくないのですが、どうすればいいでしょうか? 現在、オプションはつけてないのですが、最後にマッチしたものがとりだされてしまいます。 ---------------------------------------- s/aaa(.*)ccc/$1/; ・・・・・正規表現 ---------------------------- aaabbbccc : : aaadddccc : aaaeeeccc ---------- だと、eeeに置換されるのですが、bbbに置換したいです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現について

    ExcelにてVBScriptの正規表現を使用していますが、 理解できないところがあるので、教えてください 1.EXCEL VBAにて下記のコードがあります Sub Sample2() Const strCHK As String = "000AAA111BBB2222BBB333" Dim RE, strPattern As String, i As Long, msg As String, reMatch, Item Set RE = CreateObject("VBScript.RegExp") strPattern = "AAA.+bbb" With RE .Pattern = strPattern .IgnoreCase = True .Global = True Set reMatch = .Execute(strCHK) For Each Item In reMatch Debug.Print Item.Value & " FirstIndex→" & Item.FirstIndex & " Length→" & Item.Length Next End With Set reMatch = Nothing Set RE = Nothing End Sub 2.上記を動作させると、イミディエイトに下記が出力されます AAA111BBB2222BBB FirstIndex→3 Length→16 3.疑問 strPattern = "AAA.+bbb"にて検索しているのに、 AAA111BBBが表示されないのは、何故なのでしょうか? よろしくお願いします

  • 正規表現で置換

    正規表現の初心者です。 テキストエディタを使って、「@:」で始まる以外の行の先頭に「//」を挿入してコメントアウトしたいのですが、正規表現がうまく書けません。 検索対象: ^[^(@:)] 置換文字列: // でいいのかなと思ったのですが、[]の中ではグルーピング用の()も文字として認識されてしまうのですね。 どのように書いたら正しく置換されるでしょうか。 どうかご教示ください。

  • Perlの正規表現について

    Perlの正規表現について質問です. ■質問 aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd eee" aaa bbb ccc ddd eee "fff ggg hhh iii" というような,文字列が書かれているファイルがあるとします. ※ダブルクォーテーションが無い行もあります. ※ダブルクォーテーション内のスペースの数は,行によってそれぞれ異なります. これを,ダブルクォーテーションの中にあるスペースだけ アンダーバーに置換する場合の正規表現を教えて下さい. つまり,下記の出力にしたいです. aaa bbb aaa bbb ccc "ddd" aaa bbb ccc "ddd_eee" aaa bbb ccc ddd eee "fff_ggg_hhh_iii" ■条件 ※ちょっと古いPerlでも動くよう,ゼロ幅肯定/否定後読((?<),(!<))は使わないでください. ※単に実現するだけなら, # cat inputfile | print -pe 'sub f(){}(shift;s/ /_/;return $_;); s/(\".*\")/&f($1)/e;' みたいな感じで置換できそうですが,「正規表現だけで簡単に書けるかどうか」が知りたいのです(正規表現だけで実現出来る場合,そのアルゴリズムを知りたいです).そのため,関数と/eオプションは使わないでください.

    • ベストアンサー
    • Perl
  • OCRで読み取った英文を正規表現を使って整形したい

    英文をOCRで読み取ったデータがあります。 ワードなどに入れるには、末尾の余分な改行が邪魔で削除したいので、秀丸エディタを使用して整形したいと思っています。 何段階かに分けてしないといけないと思いますが、アドバイスをいただければと思います。 以下にある程度考えたものを書きますので、ご指摘いただけば幸いです。 1) 全角文字を半角にする 右クリックメニューから「ハンカクに変換」 2) スペースやタブのみの行のスペースを削除 置換で、^[ \t]+\n → \n 3) 末尾の余分なスペースを削除 置換で、 $ → なし (※ 検索文字列の$の前には半角スペースがある。) 4) 単語の途中で改行されている単語をくっつける(末尾の-を削除し、次の行と繋げる) 5) .や?や! で終っていない行末の改行を削除 上記のような流れで大丈夫でしょうか? 4)は、[a-z]-$ で検索すれば、単語を分割する末尾のハイフンは探してくれますが、それを削除して、次の行と繋げることができず、とりあえずキーマクロで処理しました。 具体的には、キーマクロ登録開始、F3で検索、一文字シフトしてハイフンと改行を削除、キーマクロ終了で、登録しておいて、後は連続的にキーマクロを実行しました。 5)は、小文字で始まっている行の先頭を探し、スペースを入れて、バックスペースで前の行とつなぎました。 ^[a-z] それでも行末が変な所があったので、 [^\.\!\?]$ で検索して、個別に直していきました。(タイトル行などで、ピリオドで終わらない場合もあるので。) このような整形の必要性は割とありそうなのですが、なかなかいい情報が見当たりませんでした。 アプリケーションも探しましたが、なかなか見つからなかったのと、見つかったものもうまくいきませんでした。 何かうまい方法などありましたら、教えてください。

  • 正規表現検索

    Javaのソースコード内から特定の単語を検索したいのですが、 このとき、以下の条件があります。 (1)ブロックコメント内を無視する (2)行コメント内を無視する (3)変数文字列内を無視する 01 /* 02 * ここの abc はブロックコメント内なので無視する 03 * 04 */ 05 public class Foo() { 06  private int abc = 0; 07 08  public Foo() { 09   // 行コメント内なのでここの abc を無視 10   abc = 1; 11   String s = "変数文字列内の abc これも無視"; 12  } 13 14  public String get() { 15   return " 1'23\" abc " + abc; // この場合後ろの abc のみヒット 16  } 17 } 例えば、上記のテキストで abc を検索したとき、 6、10と15行目の後ろの3箇所のみヒットさせたいのですが、 これはどのように正規表現で記述すればよいのでしょうか。 /* で始まり、*/ が記述されるまでがブロックコメントです。 // があったら、その行末までが行コメントです。 " で囲まれた中が変数文字列です。文字列内の \" は無視します。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • DreamWeaver MXで

    大文字のタグと小文字のタグがバラバラに入ってしまってるんですが、統一させたいんです。 ドリウィの一括置換等で、フォルダの中のファイルを一気に変える方法を教えていただきたいです。 また、 <aaa> <bbb> <ccc> のように一行おきにタグが入ってるのですが、 <aaa> <bbb> <ccc> のように一括置換する方法を知ってる方いましたらよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 「*???」という条件を検索したい

    エクセル2003です。 aaa? aaa??? aaa???? bbb??? bbb???? のうち、 aaa??? bbb??? だけ検索されるようにしたいのですが 検索条件が ----------------------------------- 検索する文字列:*~??? 検索対象:値 セル内容が完全に同一であるにチェック ----------------------------------- だと aaa??? aaa???? bbb??? bbb???? が検索されてしまいます。 ----------------------------------- 検索する文字列:*??? ----------------------------------- にすると、全部検索されます。 やりたいようにするにはどうすればいいでしょうか? よろしくお願い致します。

  • 行頭語による判別を含んだ、正規表現による置換

    条件つきの正規表現がうまく組めず困っております。 以下のような条件で、テキストファイルを置換しようとしております。 置換 (1) 全角英数字を半角化 (2) 半角カナを全角化 (3) & , " などの記号を文字参照(&amp;など)化   置換対象の種類は百程度あり、半角記号や全角機種依存文字など各種 警告 ・ 第三/四水準文字や、特定の文字コードの文字があれば警告 処理対象条件 A 置換対象のファイルは shift-jis B ファイル内には、機種依存文字、第三/四水準文字が含まれる C ファイル内の行が[en]から始まっていたら置換対象とする   ファイル内の行が[ja]から始まっていたら別の置換条件で置換する D ファイル内の行が[lang=en]だったら、次の行を置換対象とする   ファイル内の行が[lang=ja]だったら、次の行を別の置換条件で置換する 上記のような条件となっております。  当初、処理対象の条件がAとBだけだった時は、 ([0-9A-Za-z !”#$%&’()*+,-./:;<=>?@[¥]^_`{|} ̄]) → 半角化 (ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ヴ) → 全角化 などと一種類ずつ置換条件を書いて、置換と警告が出来ておりました。  しかしCとDの条件が追加されたため、うまくいかずに困っております。 ^(^ja-|^ja-)(.*?)([0-9A-Za-z !”#$%&’()*+,-./:;<=>?@[¥]^_`{|} ̄]+)  このような抽出条件を書いたりしましたが、置換対象と非対称が何度も交互に出る場合などに対応できておりません。  なお、CとDを含まない条件下では以下のフリーウェアを利用して置換処理をおこなっております。 http://www.sirmiles.com/repl_ace/  当初は Perl で開発しておりましたが、 ・ 第三水準文字などが入った時にファイル出力できなかったこと ・ 文字境界の問題か、全く同じ文字に対して置換できる場合とできない場合があったこと などにより上記フリーウェアの利用といたしました。  上記や処理対象条件のAが解決すれば、行頭語の判断は if 文のみでいけるのでPerlの芽もありだと思うのですが……  現在調査を進めている方策は、以下3点です。 1 正規表現のみで行頭条件分岐+全置換の仕方を見つけて、これまで使っていたフリーウェアで実施。 2 現在は全く知識がないのだが、秀丸マクロでプログラムを組む  (サブフォルダを含めファイルの一括処理、行単位での処理、行頭の判別、半角化や全角化などなど……) 3 第三水準文字などの扱いと、置換できる場合とできない場合の調査を行いPerlで開発 (優先順位としては 1>2>3 な感じですが、1は現在行き詰まり2で調査や試行錯誤中です)  どなたか詳しい方にご意見・可否などいただければ幸いです。  時間もなく、日中もネットにつながらないために返信も遅いかもしれませぬが、よろしければお知恵をお貸しください。

    • ベストアンサー
    • Perl