如何在 Watson 对话中使用电子邮件正则表达式触发节点?



我正在尝试从 Watson 对话中的用户输入文本中提取电子邮件地址。首先,我需要使用 if 条件触发一个特定的节点,如下所示:

input.text.contains('^(([^<>()[].,;:s@"]+(.[^<>()[].,;:s@"]+)*)|(".+"))@(([[‌​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,}))$')

但它不起作用,我尝试了很多在互联网上找到的正则表达式,但没有一个有效。有谁知道如何编写正确的正则表达式?

我建议使用更简单、近似的正则表达式来匹配您需要使用的电子邮件String.matches(string regexp)接受正则表达式的方法:

input.text.matches('^\S+@\S+\.\S+$')

不要忘记使用双转义反斜杠,以便在模式中定义文字反斜杠。

图案详情

  • ^- 字符串的开头
  • \S+- 一个或多个非空格字符
  • @-@符号
  • \S+- 一个或多个非空格字符
  • \.- 文字点
  • \S+- 一个或多个非空格字符
  • $- 字符串的结尾。

最新更新