• 締切済み

秀丸エディタで正規表現を使い一致をおこないたい

こんにちは。秀丸エディタで正規表現を勉強しています。 下記のような文字列があったとします。 aaaa@bbb.com OR bbb@ccc.com OR ccccc@ddddd.com この時、@マークより前の物のみ検索でヒットできないか考えています。 aaaa bbb ccccc まったくどのような正規表現にしていいかわかりません。よいアイディアがございましたらご教授お願い致します。

みんなの回答

  • kichi8000
  • ベストアンサー率41% (658/1581)
回答No.1

例文の文字列以外は保証できませんけどね。 一致指定は、検索で一致させる範囲からの選択範囲を除外出来ます。 (?<=(( (or|OR) )|^)).+?(?=@) "行頭"または"スペースORスペース"の(?<=expression) 前方一致指定 ".+?"は全ての文字。スペースも含む。 "@"の(?=expression) 後方一致指定 (?<=( |^))[^ ]+?(?=@) "行頭"または"スペース"の(?<=expression) 前方一致指定。ORは考慮しない。 "[^ ]+?"はスペース以外の文字。 "@"の(?=expression) 後方一致指定 @の前のアドレス途中にスペースがあると誤作動。

関連するQ&A

  • さくらエディタでの正規表現マクロ

    正規表現でタブ区切りの文字列の順序を入れ替える作業を試みています。 AAA BBB CCC PPP QQQ RRR のような文字列を BBB CCC AAA QQQ RRR PPP のように2列目、3列目、1列目のように順番を入れ替えたいです。 VBScriptで1行ずつ読み込み、タブを区切り文字として、配列に放り込み、配列の順番を指定して出力すればなんとか対応できるのですが、どうしてもさくらエディタで実装したいのですが、正規表現を駆使して対応できないものでしょうか? 検索により、パターンにマッチする部分は正規表現で2列目とか3列目というのは書けるのですが、パターンマッチだけで、置換後の文字列に変数などを使用できず苦しんでいます。 正規表現を用いていれればいいし、無理なら、さくらエディタで秀丸のように配列やFOR文などを使いたいのですが、使い方がわからず、質問しました。 ご存知の方がいらっしゃれば、教えてください。

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

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

  • 正規表現について

    正規表現を使用して文字列の置換(ereg_replace)をしたいと思うのですが、 うまくいかず悩んでおります。。 以下の文字列があったとします。 【AAA】【BBB】【CCC】DDD 文字列の中から先頭から始まる【】でくくられたものだけ(【AAA】)だけ削除して、 結果を【BBB】【CCC】DDDとしたいのですが、正規表現でどのようにヒットさせればよいのか分りません。 ※【】の中にくる文字はAAAとは限りません。 お手数ですがご教授頂けますでしょうか。

    • ベストアンサー
    • PHP
  • 秀丸エディタで正規表現とマクロを詳しく知りたい

    秀丸エディタをインストールして使い始めたのですが正規表現とマクロを詳しく知りたいのですが解説しているサイトをご存知でしたら教えてください。秀丸エディタに付属のヘルプは一通り目を通しましたが正規表現とマクロがどこに書いているのが分りませんでした。もう一度ヘルプをじっくり見るつもりです。amazonに秀丸エディタの市販の解説本は色々あったのですが どれを買ったらいいか決められませんでした。秀まるおサイト販売の白黒の公式マニュアルはどうでしょうか? また、まだ送金はしていないのですが使用制限・試用期間があるのでしょうか?しばらくすると送金してください等のポップアップが出るのでしょうか?もちろんこのソフトの凄さは分かっているのでちゃんと作者に送金して使うつもりです。

  • 秀丸エディタの正規表現

    秀丸エディタの正規表現 これから述べる置換処理について教えてください。 条件を表現します。 まず半角空白文字を _ このように全角アンダースコアであらわします。 そしてマッチさせたいSTRINGは _ このように半角空白文字がそれ以外の文字に前後をはさまれている状態ではなくて、 、 __ このように半角空白文字二個もしくは二個以上続いたものが半角空白文字以外に挟まれているパターンです。 。 ちなみに置換後の文字列は __ ですつまり空白半角文字列二個です。 よってこの質問は次のようにも言い換えられます。 。 検索文字列 半角空白文字二個以上 を置換後文字列 半角空白文字二個に置き換える。もしくは、半角空白文字三個以上を 置換後文字列 半角空白文字二個に置き換える。 というのが質問です。おねがいします。 すみませんつけたしです。上記を実現する正規表現を教えてください。

  • 秀丸の正規表現はどの流派に属しているのですか?

    秀丸エディタ64 (バージョン8.20)を使用しています。 秀丸の正規表現は、どういった流派(?)の流れを汲んでいるのでしょうか?よく、○○互換の正規表現という言葉がありますよね。Perl互換、.NET互換など、、、Java、C、そのほかの言語/プラットフォームで秀丸の正規表現に最も近いのは何でしょうか、教えてください。

  • 秀丸で正規表現による置換

    正規表現でつまずいてしまったので教えてください。 こういうデータがあったとして ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ,,E,77774000,13,77770004479,〇〇〇,0,,,,,l_ ,,E,77774000,21,77770004478,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ,,E,88884000,14,88880004479,〇〇〇,0,,,,,l_ ,,E,88884000,20,88880004478,〇〇〇,0,,,,,l_ 6列目に77770004480があったら、5列目の1を10にする。 6列目に88880004480があったら、5列目の5を10にする。 という事がしたいのですが、7777や8888の部分は必ず数字4桁で固定ですが、 実際には0000-9999まであるため、1万回置換するのは面倒です。 そこで、0004480があったら、ヒットする1や5を10に置き換える事がしたいのですが どのようにしたらいいでしょうか? また、12を2に置き換えることもあるので、5列目は 必ず数字ですが、1桁または2桁となります。 正規表現置換で使用するエディタは、秀丸です。 ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ↓ ,,E,77774000,10,77770004480,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ↓ ,,E,88884000,10,88880004480,〇〇〇,0,,,,,l_ 以上よろしくおねがいいたします

  • 秀丸の正規表現(HMJRE.DLL V1.92)で、

    秀丸の正規表現(HMJRE.DLL V1.92)で、 以下のことが可能かどうか教えてください。 ある2つの文字列のいずれも含まない行を 正規表現とGREPで抽出したいのです。 (ほかの手段でもかまいません) たとえば AAAA ABCDEF BCDEFG EFGHI といったテキストデータがあった場合 "ABC"と"DEF"のいずれも含まない行であれば AAAA EFGHI を抽出したいのです。 以上、よろしくお願いします。

  • 正規表現で前方一致を実現したい

    お世話になります。 正規表現を用いて、ある特定の文字を前方一致で検索し、ヒットしたその文字以前のを置換する、ということを実現するにはどのような記述をすればよいのか分からず困っています。 たとえば、  あいうえお&かきくけこ&さしすせそ という文字列があったとき、最初の「&」以前だけを削り、結果、下記のような文字列を取得したい場合、どのような記述をすればよいでしょうか。  かきくけこ&さしすせそ これを秀丸エディタ上で実現したいです。 宜しくお願いします。

  • 正規表現の前後の^と.*$の意味

    インターネットの情報で、テキスト検索で使用する場合、 ^(?=.*aaa)(?=.*bbb)(?=.*ccc).*$とすると 「同一行の中に全ての文字列が含まれている場合」ヒットすると 書かれていたのですが、前後の^と.*$がない場合とどのような違いがあるのでしょうか。 (1) ^(?=.*aaa)(?=.*bbb)(?=.*ccc).*$ (2) (?=.*aaa)(?=.*bbb)(?=.*ccc) powershell でログの文字列検索するスクリプトを作成していて (1)だと正規表現がうまく働いていないのか"match"で検索がヒットしせず、(2)だと検索ヒットするため前後の^と.*$がないものとの違いが気になりました。