如何在聊天机器人中使用正则表达式
正则表达式是一种模式,当预设的验证方法不足以将从订阅者接收到的值与模板值进行比较时,可以使用该模式。
例如,您可以使用正则表达式检查短语的关键字和字数,空格和其他字符的存在,以及在一定的值范围内输入数字或检查到社交媒体帐户的链接。
正则表达式语法
可以从正则字符组成正则表达式,例如
在下面的表中,您可以看到在组合正则表达式时使用的基本符号。
特殊的符号
\ |
屏蔽字符。指示下面的字符是文字字符而不是元字符。例如,\*对应于星号作为字面字符,而不是重复量词 |
\ n |
新行。用于搜索换行。例如, 梦大了。” |
\ t |
选项卡。用于搜索字符串中的水平制表符(ASCII字符9)。 |
v \ |
垂直制表符。对应于任何垂直空格字符。 |
\ f |
新页面。对应ASCII字符12。 |
锚
^ |
字符串的开始。例如, |
$ |
行到头了。例如, |
\ b |
词边界。例如, |
象征类
\ s |
空间。例如, |
\ d |
数字。等于该行的第一位数字。相当于 |
\ D |
不是数字。等于字符串中的第一个字母。相当于 |
\ w |
词。对应于任何第一个字母数字字符,包括下划线。相当于 |
\ W |
一个字也没有。对应于任何第一个非数字字母字符。等价于表达式 |
量词
* |
0或更大。对应于前一个字符重复0次或0次以上。等价于表达式 |
+ |
1或更大。对应前一个字符重复1次或1次以上。等价于表达式 |
? |
0或者1。对应前一个字符重复0或1次。等价于表达式 |
{n} |
正好N次。例如, |
{n, m} |
最小N次,最大M次。例如, |
范围
. |
除换行符以外的任何字符( |
(| b) |
a或b。例如, |
(…) |
一组字符。例如, |
(美国广播公司) |
a或b或c,例如, |
(q) |
a和q之间的小写字母。例如, |
(q) |
A和Q之间的一个大写字母。例如, |
(^ abc) |
不是a b c,例如, |
[^ q] |
任何不在a到q范围内的小写字母。例如: |
[0 - 9] |
0到9之间的数字。例如, |
旗帜
标志被指定<年代trong>后年代trong>正则表达式。旗帜的顺序并不重要。
g |
全球搜索。例如, |
我 |
独立于区域的搜索。例如, |
米 |
多行文本。例如, 梦大了。” 解释: |
年代 |
把文章看成一行来读。文本被视为单行,在这种情况下,元字符“.”对应于任何单个字符,包括换行符。 |
元字符
元字符不是字母或数字,但在正则表达式的语法中具有特定作用的字符。例如,
为了不同的目的使用元字符,它需要被屏蔽。例如,使
屏蔽是用
关于需要被屏蔽的字符,请参见下表。
^ | [ | . | $ | { | * | ( |
\ | + | ) | | | ? | < | > |
要了解更多关于正则表达式语法的信息,请参见<一个href="https://www.exlab.net/tools/sheets/regexp.html">exlab.net一个>.
如何在SendPulse聊天机器人生成器中使用正则表达式开云体育手机网页版登录入口官网
从聊天机器人构建器的左窗格中拖放Message元素项。激活“等待订阅者回复”选项。选择“正则表达式”作为验证。
在正则表达式字段中输入表达式。我们将查看一个表达式示例,以检查您是否输入了不同大小写的“Yes”和“No”。
方法上检查正则表达式的有效性<一个href="https://regex101.com/">regex101一个>的网站。在“Regex Library”部分,你可以找到带有解释的常用表达式模板。
输入错误输入数据时出现的消息。你可以使用变量和表情符号。
我们建议您更改默认的错误消息,并使用示例值指定您想要得到的响应,以使用户更容易导航您的bot并提供正确的数据。
选择要保存答案的变量,或单击“创建变量”创建一个新变量。
不要忘记设置响应的等待时间,以防止用户在一段时间内输入除您所请求的值以外的任何值。
注意:当“User input”元素正在等待响应时,通过触发器和菜单单击来触发其他流是无效的。
还可以对“正则表达式”验证类型使用快速回复,以帮助用户使用预定义的响应。
点击“应用”。
用户如何使用正则表达式与机器人交互
一个使用正则表达式定量检查任意两个单词中短语的引入的示例
如果订阅者输入了错误的字数,他们将收到错误的输入消息。如果字数正确,订阅者将收到一条成功消息。
一个用正则表达式回答带有“是”和“否”语句的二分问题的例子。
在“Message”元素中,我们添加了一个问题、两个按钮,并使用正则表达式输入用户数据
使用正则表达式在gmail.com查询电子邮件地址的示例。
在“Message”块中,使用正则表达式添加一个问题和用户输入
如果用户在非“gmail.com”域中输入电子邮件,如果数据输入不正确,该消息将提醒用户在gmail.com域中输入电子邮件以访问谷歌Docs。
注意,使用正则表达式写入的数据被写入“String”类型的变量。你不能在服务中向他们发送战役。要收集用于发送消息的联系数据,请使用数据输入类型“电子邮件”和“电话”。
带有用户数据的响应被保存到聊天机器人受众变量中。中查看已保存的响应<一个href="https://sendpulse.ua/ru/knowledge-base/facebook-chatbot/create-variable">观众一个>选项卡,使用所有后续文本消息中的变量,然后创建<一个href="https://sendpulse.ua/ru/knowledge-base/facebook-chatbot/create-campaign-using-segmentation">分段邮件一个>.
正则表达式示例
查询DD/MM/YYYY格式的日期。年代trong>
/ \ d {1,2} \ \ d {1,2} \ / \ d {4} /
- 解释:
\ d-等待任何数字输入;
{1,2}-可能有一个或两个总数字({1,2};
\。-屏蔽“。”,使其显示为正常的句点。
验证格式为DD.MM.YYYY的日期:年代trong>
/ \ d {1,2} \ \ d {1,2} \ \ d {4} /
- 解释:
\ d-等待任何数字输入;
{1,2}-总数字必须为1或2位(
{1,2} ;\。-屏蔽“。”,使其显示为正常句点;
{4}。-总数字必须是4位({4})
每行检查一个单词:年代trong>
/ ^ ^ \ s *美元/
- 解释:
^-行开始;
^ \ [s]-任何字符,每个字符后不加空格;
*- 0次或以上;
$-行结束。
在一行中检查两个单词:年代trong>
/ ^ ^ \ [s] * \ s ^ \ [s] * /美元
- 解释:
^-行开始;
^ \ [s]-输入任何字符,每个字符后不得有空格;
*- 0次或以上;
\ s——空间;
^ \ [s]-任何字符,每个字符后不加空格;
*- 0次或以上;
$-行结束。
在一行中检查三个单词:年代trong>
/ ^ (^ \ [s] * \ s) {2} ^ \ s *美元/
- 解释:
^-行开始;
(^ \ [s] * \ s) {2})是两个字(
{2} ),每个字由任意字符组成,不加空格;每个字符后(^ \ [s] ),可以是0或更多次(* );每个单词以空格结尾(\ s );^ \ [s]-任何字符,每个字符后不加空格;
*- 0次或以上;
$-行结束。
要检查特定的单词匹配:年代trong>(例如:Yes, Yes, Yes, or No, No, No):
正则表达式查询护照系列和号码年代trong>(旧型号为2个字母6位数字,不带空格,新型号为xxxxxxxx-xxxxxxx):
检查TIN年代trong>(10或12位数字)<年代trong>:年代trong> 验证格式为xxxx-xxxxxx-xxxx-xxxx的银行卡号。年代trong> 验证域上的电子邮件地址年代trong>(例如,将谷歌帐户中的文档共享到gmail.com地址):
最后更新:<年代pan itemprop="dateCreated">18.08.2022年代pan>/ ^(?是的|是的| |没有| |)/美元
^-行开始;
吗?-等待输入与输入字数相符的字数;
是的是的| | | |没有是yes, yes, yes, no, no, no来检查匹配;
$-行结束。
/ ^ [a - z]{2}[0 - 9]{6}) ?美元| [0 - 9]{8}[\ s \ -] ? [0 - 9] {5} ?美元/
^-行开始;
([a - z] {2} [0 - 9] {6}) ?-可以重复0或1次的字符串(
$-行结束;
|-运算符“或”;
[0 - 9] {8}-八(
[\ s \ -) ?-空格和破折号(
[0 - 9] {5}-五(
/ ^ (([0 - 9] {12}) | ([0 - 9] {10})) ?美元/
^-行开始;
[0 - 9] {12}-十二(
|-运算符“或”;
[0 - 9] {10}-十(
?-可重复0次或1次;
$-行结束。
/ \ d {4} [\ s \ -] ? \ d {4} [\ s \ -] ? \ d {4} [\ s \ -) ?\ d {4} /
\ d-等待任何数字输入;
{4}——其中只能有四个;
[\ s \ -) ?—空格、破折号,可重复0次或1次。
/ (\ w | ^) (\ w。\]{0,25}@ (gmail) \ com \ w美元| /
(\ w | ^)-第一部分的捕捉,其中
(\ w。\]-对应列表中的一个字符,其中
{0, 25}-其中可能有0到25个;
(gmail)-对应单词“gmail”;
\。-对应符号“。”;
com-对应“com”字;
(\ w | $)第三个捕获组,在哪里