2017-04-11 4 views
1

Watson Conversationのユーザー入力テキストから電子メールアドレスを抽出しようとしています。まず最初は、最初、私はこのような場合の条件を使用して特定のノードをトリガする必要があります。Watson Conversationで電子メールの正規表現を使用してノードをトリガーする方法はありますか?

input.text.contains('\^(([^<>()[].,;:[email protected]\"]+(.[^<>()[].,;:[email protected]\"]+)*)|(\".+\"))@(([[‌​0-9]{1,3}.[0-9]{1,3}‌​.[0-9]{1,3}.[0-9]{1,‌​3}])|(([a-zA-Z-0-9]+‌​.)+[a-zA-Z]{2,}))$\') 

しかし、それは動作しません、私は私がインターネット上で見つかった正規表現の多くが、誰の仕事をしようとしました。誰も適切な正規表現を書く方法を知っていますか?

ありがとうございます!私ははるかに簡単な使用することをお勧め

+0

@WiktorStribiżewありがとうございます! – OiRc

答えて

2

おおよそ、正規表現を使用すると、正規表現を受け入れString.matches(string regexp)方法で使用するために必要なメールを一致させる:

input.text.matches('^\\[email protected]\\S+\\.\\S+$') 

規定するように、バックスラッシュをエスケープ倍増することを忘れないでください。 リテラルパターン内のバックスラッシュ。

パターンは詳細:

  • ^ - 文字列
  • の開始
  • \\S+ - 一つ以上の非空白文字
  • @から@シンボル
  • \\S+ - 一つ以上の非空白文字
  • \\. - 1リットルアルドット
  • \\S+ - 1つ以上の空白以外の文字
  • $ - 文字列の末尾。
関連する問題