さて、例えば次の 3 行を見てみましょう。
2536320:GlorySon:[email protected]:84.153.217.22:a6b585f1ba0461ae2ae30cca72c5d9e0:J3!'Zau&@s`IlB%\\gDhqk>K8~W,QSP
470957:Redemptor:[email protected]:24.77.161.226:daa4f847e4c2eef69d3fd30bab8c8ae2:]2a
49114:Lavis:[email protected]:82.236.195.211:8db988462a0c5403a4c2afc2c4e5f87d:/<I
これを次のように変換します:
[email protected]
[email protected]
[email protected]
正規表現を使って私が望む結果を得るのを手伝ってくれる人はいませんか :))
答え1
次のようにすると、すべての電子メールアドレスが抽出されます。これが要件のようです。
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b
ここでテストできますhttps://regex101.com/r/jrncm1/1
答え2
- Ctrl+H
- 検索対象:
^.+?:([^:@]+@[^:]+).*$
- と置換する:
$1
- チェック ラップアラウンド
- 正規表現をチェック
- チェックを外す
. matches newline
- Replace all
説明:
^ # beginning of line
.+? # 1 or more any character, not greedy
: # a colon
( # start group 1
[^:@]+ # 1 or more any character that is not : or @
@ # @ sign
[^:]+ # 1 or more any character that is not :
) # end group
.* # 0 or more any charactre but newline
$ # end of line
与えられた例の結果:
[email protected]
[email protected]
[email protected]
画面キャプチャ: