如何在 Watson Conversation 中使用电子邮件正则表达式触发节点?
How to trigger a node using email regex in Watson Conversation?
我正在尝试从 Watson Conversation 中的用户输入文本中提取电子邮件地址。首先,我需要使用如下 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,}))$\')
但它不起作用,我尝试了很多我在互联网上找到的正则表达式,但其中 none 有效。有谁知道如何编写正确的正则表达式?
我建议使用更简单的 approximate 正则表达式来匹配您需要使用接受正则表达式的 String.matches(string regexp)
方法的电子邮件:
input.text.matches('^\S+@\S+\.\S+$')
不要忘记双转义反斜杠以便在模式中定义文字反斜杠。
图案详情:
^
- 字符串开头
\S+
- 一个或多个非空白字符
@
- @
符号
\S+
- 一个或多个非空白字符
\.
- 文字点
\S+
- 一个或多个非空白字符
$
- 字符串结尾。
我正在尝试从 Watson Conversation 中的用户输入文本中提取电子邮件地址。首先,我需要使用如下 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,}))$\')
但它不起作用,我尝试了很多我在互联网上找到的正则表达式,但其中 none 有效。有谁知道如何编写正确的正则表达式?
我建议使用更简单的 approximate 正则表达式来匹配您需要使用接受正则表达式的 String.matches(string regexp)
方法的电子邮件:
input.text.matches('^\S+@\S+\.\S+$')
不要忘记双转义反斜杠以便在模式中定义文字反斜杠。
图案详情:
^
- 字符串开头\S+
- 一个或多个非空白字符@
-@
符号\S+
- 一个或多个非空白字符\.
- 文字点\S+
- 一个或多个非空白字符$
- 字符串结尾。