1 件の投稿を表示中 (合計 3 個)
  • 作成者
    投稿
  • #10548
    Autumn
    参加者

    お世話になります

    以下のようなタブ区切りのテキストがあります

    AAAタブbbb(ccc)タブdddタブeee以下略

    行頭から二列目の一番最初の ( まで検索をする正規表現は
    下記で可能でした

    ^([^t]*t)[^(]*(

    行頭から二列目の一番最初の ( までの内容が
    重複する行の行頭に●をつけるようするには、どうしたらいいでしょう

    bbbタブccc(ddd)タブeeeタブfff以下略
    AAAタブbbb(ccc)タブdddタブeee以下略
    AAAタブbbb(ccc)タブdddタブeee以下略

    bbbタブccc(ddd)タブeeeタブfff以下略
    ●AAAタブbbb(ccc)タブdddタブeee以下略
    ●AAAタブbbb(ccc)タブdddタブeee以下略

    タブ区切りテキストはあるソフトのデータを
    テキスト出力したもので、処理したものを書き戻すため
    できるだけ変更等加えない形で処理したいため
    その方向でお願いします。

    #10951
    yuma10566
    メンバー

    かなり以前の質問ですが…、

    まずはEmEditorのオプションで
    「正規表現が改行文字に一致することが出来る」にチェックを入れた上で、
    以下の正規表現で上手く行かないでしょうか。

    =009900]
    検索する文字列:
    ^([^t]*t[^t]+?)(.*)n(2)([^n]*)

    置き換え後の文字列:
    ●$1$2n●$3$4

    解説:

    ^
    #行頭から始まる

    [^t]*t[^t]+?
    #「タブ以外の文字列」+「タブ」+「タブ以外の文字列」という並びと
    # (ここをカッコでキャプチャしておき)

    .*
    # 残りの文字列があり(ここまでが1行目)

    n
    # 改行で2行目へ

    (2)
    # 前の行でキャプチャしていた内容と同一の文字列があればヒットする

    ([^n]*)
    # 置き換えのため2行目の残りの文字列もキャプチャしておく(改行を除くすべての文字)

    ↓↓

    ●$1$2n●$3$4

    # 1行目の内容が $1 と $2 に
    # 2行目の内容が $3 と $4 に入っているので、
    # ●と改行を付け足して置き換えしています

    #11125
    Autumn
    参加者

    お返事ありがとうございます。
    ご返答いただいたことに長らく気が付くず、大変失礼しました。

    早速、設定を変更し、試してみたのですが
    うまくはいきませんでした。

    ですが、丁寧に正規表現の説明をいただいておりますので
    自分でも頑張ってみたいと思います。

1 件の投稿を表示中 (合計 3 個)
  • このトピックに返信するにはログインしてください。