1

例:mailto:info@info.com?subjectsomethingまたはmailto:info@info.com

件名のないメールアドレスのみを取得したい(ある場合)

この式は十分ではなく、私はそれを機能させることができません:

mailto:(.*)

ありがとう

4

3 に答える 3

2

この正規表現を試してください:

mailto:([^\?]*)
于 2012-07-27T16:51:13.693 に答える
1

一致した文字をキャプチャ グループに保存する必要があります。

mailto:([^?]+)

これで、住所が $1 (または他の変数。言語によって異なります) に格納されます。

メール アドレスの後に別のアドレスが使用される可能性がある場合は、区切り文字を指定する必要があります。たとえば、スペースの場合:

mailto:([^?\S]+)[\s?]

非貪欲な re を使用することもできます。

mailto:(.+?)[\s?]

つまり、「会ったらすぐに止まる\s(スペース) または?

于 2012-07-27T16:56:57.947 に答える
0

これにより、単語境界内で一致する文字列が検索されます。選択した言語を使用して、括弧で囲まれた最初のサブパターンから電子メールの値を取得する必要があります (通常、それへの参照は $1 になります)。2 番目のサブパターンは、件名をキャプチャします (先頭に ? を付けます)。

\bmailto:(.*)(\?.*)?\b
于 2012-07-27T16:56:17.563 に答える