15年来,为全国50万+企业提供互联网数字化基础应用服务。
知 识
0514-86177077
9:00-17:00(工作日)
首 页
企业400电话
Hot
网站☯建设
微网小程序
商标✡知产
网络营销推广
AI电话机器人
热
彩铃©短信
增值拓展业务
新
主页
>
知识库
> PHP和正则表达式教程集合之二第1/2页
PHP和正则表达式教程集合之二第1/2页
热门标签:
销售电销机器人诈骗
地图标注与公司业务关系
外呼系统api对接
福建微码电话机器人
大学校门地图标注
平凉高德地图标注商户要收费吗
提高电话机器人接通率
广西智能外呼系统多少钱
荆州智能电销机器人
正则表达式快速入门(二)
【导读】在本文里,我们主要介绍子模式(subpatterns),逆向引用(Back references)和量词(quantifiers)
在上篇文章里,我们介绍了正则表达式的模式修正符与元字符,细心的读者也许会发现,这部分介绍的非常简略,而且很少有实际的例子的讲解。这主要是因为网上现有的正则表达式资料都对这部分都有详细的介绍和众多的例子,如果觉得对前一部分缺乏了解可以参看这些资料。本文希望可以尽可能多涉及一些较高级的正则表达式特性。
在本文里,我们主要介绍子模式(subpatterns),逆向引用(Back references)和量词(quantifiers),其中重点介绍对这些概念的一些扩展应用,例如子模式中的非捕获子模式,量词匹配时的greedy与ungreedy。
子模式(subpatterns)与逆向引用(Back references)
正则表达式可以包含多个字模式,子模式由圆括号定界,可以嵌套。这也是两个元字符“(”和“)”的作用。子模式可以有以下作用:
1. 将多选一的分支局部化。
例如,模式: cat(aract|erpillar|)匹配了 "cat","cataract" 或 "caterpillar" 之一,没有圆括号的话将匹配 "cataract","erpillar" 或空字符串。
2. 将子模式设定为捕获子模式(例如上面这个例子)。当整个模式匹配时,目标字符串中匹配了子模式的部分可以通过逆向引用进行调用。左圆括号从左到右计数(从 1 开始)以取得捕获子模式的数。
注意,子模式是可以嵌套的,例如,如果将字符串 "the red king" 来和模式 /the ((red|white) (king|queen))/进行匹配,捕获的子串为 "red king","red" 以及 "king",并被计为 1,2 和 3 ,可以通过“1”,“2”,“3”来分别引用它们,“1”包含了“2”和“3”,它们的序号是由左括号的顺序决定的。
在一些老的linux/unux工具里,子模式使用的圆括号需要用反斜线转义,向这种(subpattern),但现代的工具已经不需要了,本文中使用的例子都不进行转义。
非捕获子模式(non-capturing subpatterns)
用一对括号同时完成上面提到的子模式的两个功能有时会出现一些问题,例如,由于逆向引用的数目是有限的(通常最大不超过9),而且经常会遇到无需捕获的子模式定义。这时,可以在开始的括号后加上问号和冒号来表示这个子模式无需捕获,就向下面这样(?:red|white) (king|queen))。
如果将“the white queen”作为模式匹配的目标字符串,则捕获的字串有“white queen”和“queen”,分别作为“1”和“2”,white虽然符合子模式“(?:red|white)”,但并不被捕获。
我们前面已经介绍过用括号与问号表示模式修正符的方法,为方便起见,如果需要在非捕获子模式中插入模式修正符,可以把它直接放在问号和冒号之间,例如,下面两个模式是等效的。
/(?i:saturday|sunday)/和/(??i)saturday|sunday)/。
逆向引用(Back references)
前面介绍反斜线作用时,已经提到它的一个作用就是表示逆向引用,当字符类之外的反斜线后跟一个大于0的十进制数时,它很有可能是一个逆向引用。它的含义正如它的名称如言,它表示对它出现之前已经捕获的子模式的引用。这个数字代表了它引用的左括号在模式中出现的次序,我们在介绍子模式时已经看到过逆向引用的一个例子,那里的过“1”,“2”,“3”分别表示所捕获的第一,第二,和第三个小括号定义的子模式的内容。
值得注意的是,当反斜线后的数字小于10时,可以确定此为一个逆向引用,这样,这个逆向引用就可以出现在之前有相应数目的左圆括号被捕获前而不会出现混淆,只有整个模式能提供那么多的捕获子模式,就不会报错。说起来似乎很混乱,还是让我们来看下面这个例子。把介绍子模子时举的例子拿来修改一下,前面讲过字符串 "the red king" 来和模式 /the ((red|white) (king|queen))/匹配,捕获的子串为 "red king","red" 以及 "king",并被计为 1,2 和 3 ,现在把字符串,修改为" king,the red king",模式改为/3,the ((red|white) (king|queen))/,这个模式应该也是可以匹配的。不过,并非所有的正则表达式工具都支持这种用法,安全的做法是在相应序号的左括号之后使用与之相关的逆向引用。
需要注意的另一点是逆向引用的值是在目标字符串中实际捕获的符合子模式的字符串片段而非该子模式本本身。例如/ (sens|respons)e and 1ibility/会匹配“sense and sensibility” 和 “response and responsibility”,但不会是 "sense and responsibility"。当被逆向引用的子模式后面有量词从而被重复匹配了多次,逆向引用的值会以最后一次匹配的值为准。例如/([abc]){3}/匹配字符串“abc”时,逆向引用“1”的值将是最后一次匹配的结果“c”。
命名子模式(named subpattern)
一些工具(例如Python)可以为逆向引用命名,从而定义出命名子模式。在Python中对正则表达式的使用是以函数或方法调用的格式,语法与这里举的例子有较大差别。有兴趣的朋友可以参看一下自己使用的工具来看看是否支持命名子模式。
非捕获子模式(non-capturing subpatterns)
用一对括号同时完成上面提到的子模式的两个功能有时会出现一些问题,例如,由于逆向引用的数目是有限的(通常最大不超过9),而且经常会遇到无需捕获的子模式定义。这时,可以在开始的括号后加上问号和冒号来表示这个子模式无需捕获,就向下面这样(?:red|white) (king|queen))。
如果将“the white queen”作为模式匹配的目标字符串,则捕获的字串有“white queen”和“queen”,分别作为“1”和“2”,white虽然符合子模式“(?:red|white)”,但并不被捕获。
我们前面已经介绍过用括号与问号表示模式修正符的方法,为方便起见,如果需要在非捕获子模式中插入模式修正符,可以把它直接放在问号和冒号之间,例如,下面两个模式是等效的。
/(?i:saturday|sunday)/和/(?:(?i)saturday|sunday)/。
逆向引用(Back references)
前面介绍反斜线作用时,已经提到它的一个作用就是表示逆向引用,当字符类之外的反斜线后跟一个大于0的十进制数时,它很有可能是一个逆向引用。它的含义正如它的名称如言,它表示对它出现之前已经捕获的子模式的引用。这个数字代表了它引用的左括号在模式中出现的次序,我们在介绍子模式时已经看到过逆向引用的一个例子,那里的过“1”,“2”,“3”分别表示所捕获的第一,第二,和第三个小括号定义的子模式的内容。
值得注意的是,当反斜线后的数字小于10时,可以确定此为一个逆向引用,这样,这个逆向引用就可以出现在之前有相应数目的左圆括号被捕获前而不会出现混淆,只有整个模式能提供那么多的捕获子模式,就不会报错。说起来似乎很混乱,还是让我们来看下面这个例子。把介绍子模子时举的例子拿来修改一下,前面讲过字符串 "the red king" 来和模式 /the ((red|white) (king|queen))/匹配,捕获的子串为 "red king","red" 以及 "king",并被计为 1,2 和 3 ,现在把字符串,修改为" king,the red king",模式改为/3,the ((red|white) (king|queen))/,这个模式应该也是可以匹配的。不过,并非所有的正则表达式工具都支持这种用法,安全的做法是在相应序号的左括号之后使用与之相关的逆向引用。
需要注意的另一点是逆向引用的值是在目标字符串中实际捕获的符合子模式的字符串片段而非该子模式本本身。例如/ (sens|respons)e and 1ibility/会匹配“sense and sensibility” 和 “response and responsibility”,但不会是 "sense and responsibility"。当被逆向引用的子模式后面有量词从而被重复匹配了多次,逆向引用的值会以最后一次匹配的值为准。例如/([abc]){3}/匹配字符串“abc”时,逆向引用“1”的值将是最后一次匹配的结果“c”。
命名子模式(named subpattern)
一些工具(例如Python)可以为逆向引用命名,从而定义出命名子模式。在Python中对正则表达式的使用是以函数或方法调用的格式,语法与这里举的例子有较大差别。有兴趣的朋友可以参看一下自己使用的工具来看看是否支持命名子模式。
重复(Repetition)和量词(quantifiers)
在前面介绍逆向引用的部分里我们已经接触到了量词(quantifiers)的概念,例如前面的例子/([abc]){3}/表示三个连续的字符,每个字符都必然是 “abc”这三个字符中的一个。在这个模式里,{3}就属于量词。它表示一个模式需要重复匹配(repetition)的数目。
量词可以放在下面这些项目之后:
?●单个字符(有可能是被转义的单个字符,如xhh)
?●“.”元字符
?● 由方括号表示的字符类
?● 逆向引用
?●由小括号定义的子模式(除非它是个断言,我们会在以后介绍)
最通用的量词使用形式是用花括号括起的两个由逗号分隔的数字,如这样的格式{min,max},例如,/z{2,4}/ 可以匹配 "zz", "zzz", 或者 "zzzz",花括号中的最大值以及前面的逗号可以省略,例如/d{3,}/可以匹配三个以上的数字,数字的数目没有上限,而/d{3}/(注意,没有逗号)则精确的匹配3个数字。当花括号出现在不允许量词的位置或者语法与前面提到的不符时,这里它仅仅代表花括号字符本身而不再具有特殊的含义。例如{,6}不是量词,它仅仅代表这四个字符本身的含义。
为了方便,三个最常用的量词有它们的单字符缩写形式,它们的的含义如下表:
* 相当于 {0,}
+ 相当于 {1,}
? 相当于 {0,1}
这也是以上三个元字符做为量词使用含义。
在使用量词特别是没有上限限制的量词时,应该特别注意不要构成无限循环,例如/(a?)*/,在有的正则表达式工具里。这会形成一个编译错,不过有的工具却允许这种结构,但不能保证各种工具都可以很好的处理这种结构。
重复(Repetition)和量词(quantifiers)
在前面介绍逆向引用的部分里我们已经接触到了量词(quantifiers)的概念,例如前面的例子/([abc]){3}/表示三个连续的字符,每个字符都必然是 “abc”这三个字符中的一个。在这个模式里,{3}就属于量词。它表示一个模式需要重复匹配(repetition)的数目。
量词可以放在下面这些项目之后:
?●单个字符(有可能是被转义的单个字符,如xhh)
?●“.”元字符
?● 由方括号表示的字符类
?● 逆向引用
?●由小括号定义的子模式(除非它是个断言,我们会在以后介绍)
最通用的量词使用形式是用花括号括起的两个由逗号分隔的数字,如这样的格式{min,max},例如,/z{2,4}/ 可以匹配 "zz", "zzz", 或者 "zzzz",花括号中的最大值以及前面的逗号可以省略,例如/d{3,}/可以匹配三个以上的数字,数字的数目没有上限,而/d{3}/(注意,没有逗号)则精确的匹配3个数字。当花括号出现在不允许量词的位置或者语法与前面提到的不符时,这里它仅仅代表花括号字符本身而不再具有特殊的含义。例如{,6}不是量词,它仅仅代表这四个字符本身的含义。
为了方便,三个最常用的量词有它们的单字符缩写形式,它们的的含义如下表:
* 相当于 {0,}
+ 相当于 {1,}
? 相当于 {0,1}
这也是以上三个元字符做为量词使用含义。
在使用量词特别是没有上限限制的量词时,应该特别注意不要构成无限循环,例如/(a?)*/,在有的正则表达式工具里。这会形成一个编译错,不过有的工具却允许这种结构,但不能保证各种工具都可以很好的处理这种结构。
量词匹配的“greedy”与“ungreedy”
在使用带量词的模式时,我们常会发现对同一模式而言,同一个目标字符串可以有多种匹配方式。例如/d{0,1}d/,可以匹配两个或三个十进制数字,如果目标字符串是123,当量词取下限0里,它匹配“12”,当量词取上限1里,它匹配“123”整个字符。这两种匹配结果都是正确的,如果我们取它的子模式/(d{0,1}d)/,则匹配的结果1到底是“12”还是“123”?
实际的运行结果一般会是后者,因为默认情况下,大多数正则表达式工具的匹配是按“greedy”原则匹配的。“greedy”单词的中的含义是“贪吃的, 贪婪的”的意思,它的行为也如此单词的含义,所谓greedy匹配意指在量词限制范围内,只要能保持后续模式的匹配,匹配总是尽可能的重复下去,直到不匹配的情况发生为止。为便于理解,我们看下面这个简单的例子。
/(d{1,5})d/匹配“12345”这个字符串,这个模式表示在1到5个数字后面跟上一个数字,量词范围从1到5,当它的值在1-4时,整个模式都是匹配的,1的值可以是“1”,“12”,“123”,“1234”,而在greedy匹配的情况下,它取匹配时的量词最大值,因此最终匹配的结果是”1234”。
在大多数情况下,这就是我们想要的结果,但情况并不总这样。例如,我们希望用下面这个模式提取出c语言的注释部分(在c语言中,注释语句放在字符串/*和*/之间)。我们使用的正则表达式是/*.**/,但匹配的结果却完全和需要的不同。当正则表达式解析到“/*”这后的“.*”时,因为“.”可以代表任意字符,这也包含了其后需要匹配的“*/”,在量词的作用下,这个匹配将一直进行下去,超过下一个“*”/直到文本的结束,这显然不是我们需要的结果。
为了完成如上例我们想要的那种匹配,正则表达式引入了ungreedy匹配方法,与greedy匹配相反,在满足整个模式匹配的前提下,它总是取最小的量词数目结果。Ungreedy匹配用在量词后面加上问号“?”来表示。例如在匹配C语言的注释时,我们把正则表达式写成如下形式:/*.*?*/,在量词“*”后加上问号就可以达成想要的结果。还有前面那个例子用/(d{1,5})d/匹配“12345”这个字符串,如果改写为ungreedy模式向这样/(d{1,5}?)d/,、1的值将为1。
上面的解释也许有些不准确,量词后的问号的作用实际上是反转当前的正则表达式的greedy与ungreedy行为。你可以通过模式修正符“U”将正则表达式设成ungreedy模式然后在模式中通过量词后的问号将之反转为greedy。
一次性子模式(Once-only subpatterns)
关于量词的另一个有趣的话题是一次性子模式(Once-only subpatterns)。要理解它的概念需要先了解一下含有量词的正则表达式的匹配过程。我们这里举个例子。
现在,让我们用模式/d+foo/来匹配字符串“123456bar”,当然,它的结果是没有匹配。但正则表达式引擎是如何工作的呢?它先分析前面的d+,这代表一个以上的数字,然后检查目标字符串的对应位置的第一个字符“1”,符合模式,然后根据量词重复这个模式对字符串进行匹配直到“123456”始终符合“d+”模式,接着它在目标字符串中遇到字符“b”无法与“d+”匹配,于是查看“d+”的后续模式“foo”,与目标字符串的后续部分“bar”无法匹配,这时,有趣的事情出现了,解释引擎会对前面已经解析过的“d+”模式进行回溯,将量词数目减少一,看剩余部分能否匹配,此时“d+”的值改为“12345”,然后解释引擎看目标字符串剩余的部分“6bar”能否与剩余的模式“foo”相匹配,如果不行,就把量词数再减一,直到达到最小的量词限制,如果仍无法匹配,则表明目标字符串无法匹配,返回无法匹配的结果。
现在,我们就可以来接触一次性子模式了。所谓一次性子模式就是定义在正则表达式解析时不需要上述回溯过程的子模式。它用左圆括号后面的问号和小于号来表示,向这样(?>)。如果将上面提到的例子改为一次性子模式,可以这样书写:
/(?>d)+foo/,这时,当解析器遇到后面不匹配的bar时,会立即返回不匹配的结果,而不会进行前面提到的回溯过程。
需要了解的是,一次性子模式属于非捕获子模式,它的匹配结果不能被逆向引用。
当一个没有设定重复上限的子模式中包含了同样没有设定重复上限的模式时,使用一次性子模式是唯一可以避免让你的程序陷入长时间等待的方法。例如你用“/(D+|d+>)*[!?]/”这个模式去匹配一长串的a字符,向这样“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”,在返回最终无匹配的结果前,你会等待很长的一段时间。这个模式表示一串非数字字符或者用尖括号括着的一串数字后跟随着叹号或者问号,把这段字符串分成两个重复的部分会有很多种分法,而无论是子模式本身还是子模式之内的量词的各可能值都要经过逐一测试,这将使最终的运算量达到一个很大的程度。这样,你将在电脑前等待相当长的时间才会看到结果。而如果用一次性子模式来改写刚才的模式,改成这样/ ((?>D+)|d+>)*[!?]/,你就可以很快得到运算的结果。
正则表达式快速入门(三)
在上文里,我们介绍了正则表达式的子模式,逆向引用和量词,在这篇文章里,我们将重点介绍正则表达式中的断言(Assertions)。
断言(Assertions)
断言(Assertions)是在目标字符串的当前匹配位置进行的一种测试但这种测试并不占用目标字符串,也即不会移动模式在目标字符串中的当前匹配位置。
读起来似乎有点拗口,我们还是举几个简单的例子。
两个最常见的断言是元字符“^”和“$”,它们检查匹配模式是否出现在行首或行尾。
我们来看这个模式/^ddd$/,试着用它来匹配目标字符串“123”。“ddd”表示三个数字字符,匹配了目标字符串的三个字符,而模式中的^和$分别表示这三个字符同时出现在行首和行尾,而它们本身并不与目标字符串中的任何字符相对应。
其它还有一些简单的断言b, B, A, Z, z,它们都以反斜线开头,前面我们已经介绍过反斜线的这个用法。这几个断言的含义如下表。
断言 含义
b 字分界线
B 非字分界线
A 目标的开头(独立于多行模式)
Z 目标的结尾或位于结尾的换行符前(独立于多行模式)
z 目标的结尾(独立于多行模式)
G 目标中的第一个匹配位置
注意这些断言不能出现在字符类中,如果出现了也是其它的含义,例如b在字符类中表示反斜线字符0x08。
前面介绍的这些断言的测试都是一些基于当前位置的测试,断言还支持更多复杂的测试条件。更复杂的断言以子模式方式来表示,它包括前向断言(Lookahead assertions)和后向断言(Lookbehind assertions)。
前向断言(Lookahead assertions)
前向断言从目标字符串的当前位置向前测试断言条件是否成立。前向断言又可分为前向肯定断言和前向否定断言,分别用(?=和{?!表示。例如模式/ w+(?=;)/用来表示一串文本字符后面会有一个分号,但是这个分号并不包括在匹配结果中。一件有趣的事看起来差不多的模式/ (?=;)w+/并不是表示一串前面不是分号的alpha字符串,事实上,不论这串alpha字符的前面是否是一个分号它总是匹配的,要完成这个功能需要我们下面提到的后向断言(Lookbehind assertions)。
后向断言(Lookbehind assertions)
后向断言分别用(?=和(?!表示肯定的后向断言与否定后向断言。例如,/ (?!foo)bar/将寻找一个前面不是foo的bar字符串。一般而言,后向断言使用的子模式需要有确定的长度值,否则会产生一个编译错误。
使用后向断言与一次性子模式搭配使用可以有效的文本的结束部分进行匹配,这里来看一下例子。
考虑一下如果用/abcd$/这样一个简单的模式来匹配一长段以abcd结尾的文本,因为模式的匹配过程是从左向右进行的,正则表达式引擎将在文本中寻找每一个a字符并尝试匹配剩余的模式,如果在这长段文本里仅好有不少的a字符,这样做明显是非常低效的,而如果把以上模式换成为样/^.*abcd$/,这时前面的“^.*”部分将匹配整个文本,然后它发现下一个模式a无法匹配,这时会发生前面提到过的回溯过程,解析器会逐次缩短“^.*”匹配的字符长度从右向左逐次查找剩余的子模式,也要产生多次的尝试过程。现在,我们用一次性子模式与后向断言重写所用的模式,改为/^(?>.*)(?=abcd)/,这时,一次性子模式一次匹配了整段文本,然后用后向断言检查前面四个字符是否为abcd,只需要一次检测就可以立刻确定整个模式是否匹配。在遇到需要匹配一个很长的文本时,这种方法可以非常显著的提高处理效率。
一个模式中可以包含多个相继的断言,断言也可以嵌套。另外,断言使用的子模式也是非捕获的,不能被逆向引用。
断言的一个重要应用领域就是做为条件子模式的条件。那什么是条件子模式呢?
条件子模式(Conditional subpatterns)
正则表达式允许在模式中根据不同的条件使用不同的匹配子模式。也就是条件子模式(Conditional subpatterns)。它的格式如下?(condition)yes-pattern)或者 (?(condition)yes-pattern|no-pattern)。如果条件满足,采用yes-pattern,否则,采用no-pattern(如果在模式中提供了话)。
条件子模式中的条件有两种,一种是断言结果,另一种是看是否捕获一个前面提供的子模式。
如果在表示条件的圆括号里的内容是一个数字,它表示当此数字代表的子模式被成功匹配时条件为真。看看下面这个例子,/( ( )? [^()]+ (?(1) ) )/x,(注意“x”模式修正符表示忽略字符类外的空白字符和#符号之后的内容)。
这个模式的第一部分“( ( )?”匹配了一个可选的左图括号“(”,第二部分“[^()]+”匹配了一个以上的非圆括号字符,最后一部分“(?(1) ) )”是个条件子模式,表示如果捕获到1也即那个可选的左圆括号,第三部分应该会出现一个右圆括号“)”。
如果在表示条件的圆括号内是一个“R”字符,表示在这个模式或子模式被递归调用时条件为真,在递归调用的顶层,这个条件为假。关于正则表达式中的递归,我们会在后面的部分专题介绍。
如果条件不是一个数字或R字符,则它必需是一个断言。断言可以是肯定或否定的前身或后向断言。让我们看下面这个例子。
/(?(?=[^a-z]*[a-z])
d{2}-[a-z]{3}-d{2} | d{2}-d{2}-d{2} )/x
为了让这个正则表达式更容易阅读,我们特意采用了x模式修正符,这样我们可以在用模式中加入空格对符式进行格式上的分隔并分行表示而不影响模式的解析。
第一行的条件子模式使用了一个肯定的前向断言,表示一串可选的非小写字母后面跟随着一个小写字母。换句话说,它查看目标字符串是否至少包含一个小写字母,如果是,它用“|”前的模式对目标进行匹配,看目标是否为看目标是否为两个数字-三个小写字母-两个数字这种格式,否则,用“|”来匹配目标,看目标字符串是否为由“-”分隔的三段二位十进制数字。
正则表达式中的注释
为了让正则表达式更容易阅读,可以在其中加入注释语句。通常注释由左圆括号和井号——“(#“开始,当遇到下一个右圆括号”)“结束。注释是禁止嵌套的。
如果设定了“x”模式修正符,任何字符类之外(也即[]之外)的井号(#)和下一个新行标记之间的部分也被作为注释看待。
正则表达式快速入门(四)
在上一篇文章里,我们介绍了正则表达式中断言相关的一些概念,在本文里,我们会介绍正则表达式中递归的运用与利用正则表达式修改目标字符串。
正则表达式中的递归
接触过程序的朋友可能都遇到过成对的各种括号吧,这些括号常常相互嵌套,而且嵌套的层次数目无法确定。试想一下如果想提取一段程序里用括号括起的一段代码,这里面很可能包含了层次数目不定的其它括号对,用正则表达式该如何完成?
1
2下一页阅读全文
您可能感兴趣的文章:
PHP和正则表达式教程集合之一
php中常见的sql攻击正则表达式汇总
PHP中一些可以替代正则表达式函数的字符串操作函数
浅谈php正则表达式中的非贪婪模式匹配的使用
php正则表达式取得内容所有链接的方法
PHP 正则表达式小结
php正则表达式完全教程之精华篇
标签:
德阳
娄底
黔东
衡阳
内江
海南
邯郸
乐山
巨人网络通讯声明:本文标题《PHP和正则表达式教程集合之二第1/2页》,本文关键词 PHP,和,正则,表达式,教程,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
相关文章
下面列出与本文章《PHP和正则表达式教程集合之二第1/2页》相关的同类信息!
PHP和正则表达式教程集合之二第1/2页
正则表达式快速入门(二) 【导读】在本文里,我们主要介绍子模式(subpatterns),逆向引用(Backreferences)和量词(quantifiers) 在上篇文章里,我们介绍了正则表达式的模式修正符与元字符,细...
10-18
全国电话机器人(智能电话机器人公司)
今天给各位分享全国电话机器人的知识,其中也会对智能电话机器人公司进行解释,如果能碰巧解决你现在面临的问题,别忘...
11-05
covid-19对俄罗斯商标界的影响
3月20日,由于covid-19大流行而采取的封锁措施,俄罗斯专利商标局(Rospatent)关闭了。尽管如此,权利人仍然可以使用办公室...
10-23
天津医疗智能外呼系统推荐(天津外呼团队)
本篇文章给大家谈谈天津医疗智能外呼系统推荐,以及天津外呼团队对应的知识点,希望对各位有所帮助,不要忘了收藏本站...
05-17
银川呼叫系统代理 汇港通科技
汇港通科技团队组建于2018年,是一家专注于中小企业精准营销和企业管理服务解决方案的提供商。 战驴智能电话机器人系统...
10-31
用vbs脚本来关闭 HTML 页面的代码
问: 你好,脚本专家!在我的一个脚本中,我显示一个HTML页面,其中包含我希望用户阅读的信息。当他们阅读完该页面之后...
10-18
硅语AI电话机器人:“有毒”!用了半年电销机器人他们的电销人员竟然翻番了?!
跟着停课的开展,培训机构也进入了周全招生形态。培训机构走出疫情影响的枢纽是面临市场上数百万需求开释的先生,敏捷...
11-25
云南省房产专用语音电销机器人服务商-终于明白
云南省房产专用语音电销机器人服务商节省了拨号和等待客户接通时间。呼叫系统能准确为企业的业务流程在线客服、呼叫中...
05-17
Aspect大中华区总经理 丁海(新加坡)--新一代金融联络中心
《2012(第六届)中国金融客户联络中心与卓越服务高峰论坛》于2012年12月7日在上海举行。活动由呼叫中心与BPO行业资讯网(...
10-22
那个400电话怎么申请(那个400电话怎么申请电话卡)
那个400电话怎么申请(那个400电话怎么申请电话卡) 对于想要拥有自己公司品牌的400电话的企业来说,申请一个电话卡是必...
08-14
捷通华声灵云全智能客服解决方案通过中国信通院“可信AI测评”
为了进一步支撑国家人工智能相关决策和部署,推动人工智能产业的健康发展,打造安全可靠的人工智能系统,7月15日,中国...
10-19
Steam水土不平,腾讯网易PK高手过招谁能取胜?
9 月 1 日,腾讯新版Wegame游戏平台客户端正式上线,一时间引发热议,毁誉参半。Wegame的出现,把人们的目光吸引到了游戏平...
10-16
肇庆不限制卡
肇庆不限制卡 , 办理肇庆不限制卡 , 肇庆不限制卡办理 帮企通信专业经营 电销卡 ,防封版电销卡,7分电销卡,有自己的...
12-04
武汉市产业园区专业的快手代运营公司有哪些表现?
一讲起快手,比较我们都很了解了。基本上跟着快手的普及和开展,现在成为了国内应用最遍及以及最为炽热的的一款互联网...
03-01
联通400电话办理平台大连联通400电话介绍
一些企业用户不明白为什么申请联通400电话需要这么多材料。 他们不只是付钱吗? 联通400电话本身就是一个企业电话,实际...
01-13
湖南保险智能外呼系统品牌的简单介绍
本文目次一览: 1、外呼体系哪家公司做得好??? 2、电销外呼体系品牌排名,哪家好 3、有晓得的么外呼体系哪家的对照好...
11-25
400电话如何开通使用
【400电话如何开通使用】400电话的前身是800业务电话,是专为企事业单位设计的全国范围内号码统一的虚拟电话总机,所有拨...
05-03
驻马店销售外呼系统(驻马店客服电话多少)
今天给各位分享驻马店销售外呼系统的知识,其中也会对驻马店客服电话多少进行解释,如果能碰巧解决你现在面临的问题,...
08-27
用table表格来调整表单控件的格式让它好看一些
因为想自己写一个web,所以也在学习html语言的一些东西,让我回想起了大学时代曾对网页设计产生过兴趣,无奈那时候还没有自...
10-16
Win7防火墙打不开怎么办?Win7系统防火墙打不开的解决方法
Win7防火墙打不开怎么办?使用过Win7系统的用户都知道,系统本身就会自带有防火墙这一功能。虽然不少朋友的电脑还是会自...
10-20
400电话申请怎么申请400电话-400电话申请流程及注意事项
400电话申请怎么申请400电话-400电话申请流程及注意事项 “400电话申请怎么申请400电话?”这是很多企业主和个体户非常关心...
08-14
安装400电话的必要性都体现在哪些方面中国400电话网可以安装中国400电话网
当然,对于企业来说,最重要的是他们自己的客户。俗话说,顾客就是上帝。为了更好地事奉上帝,企业也必须随时待命。那...
01-12
银川外呼电销系统排名(电销外呼软件排名)
本文目录一览: 1、外呼体系哪家好?2、电话外呼体系怎么样,哪家的比较好用?3、全国电销型外呼体系哪家好4、哪些电话...
11-28
外呼系统打电销违法吗(电销外呼系统是什么)
今日给各位共享外呼体系打电销违法吗的常识,其间也会对电销外呼体系是什么进行解说,假如能可巧处理你现在面对的问题...
11-06
呼叫中心系统建设方案,主要有哪些方式?
呼叫中心,它是充分利用现代通讯与计算机技术,如IVR(交互式语音800呼叫中心流程图应答系统)、ACD(自动呼叫分配系统)等等...
07-12
杭州智能中间号防封线路哪里有,外呼系统怎么办理-厂家直销
一企嗨电话营销系统 1.当前的电销场景有哪些困扰? 1)手机.卡频繁被封,电销业务难以启动; 2)销售人员号码被标注,...
12-17
不使用外呼系统(不使用外呼系统打电话全是杂音怎么办)
本文目录一览: 1、电话外呼系统属于违法吗2、现在的电销企业都在用外呼系统了吗?3、外呼系统是什么?电话外呼系统属于...
11-28
400热线申请条件详解
400热线是企业进行客户服务、投诉反馈等重要渠道,越来越多的企业开始意识到这一点,纷纷选择申请400热线,但是许多企业...
07-21
江苏省如皋软件园启动呼叫中心平台建设
18日下午,如皋软件园举行园区呼叫中心平台建设方案论证会,启动呼叫中心平台建设。来自中国电信、中国移动的诸多专家...
10-19
呼叫中心两地质检带来的利与弊
对于亿伦呼叫中心的质检部门而言,因公司业务的不断发展,现有公司的饱和,公司今年在重庆又成立了一个公司,新的公司...
10-19
石家庄外呼电销系统公司(石家庄外呼公司名称)
本篇文章给大家谈谈石家庄外呼电销系统公司,以及石家庄外呼公司名称对应的知识点,希望对各位有所帮助,不要忘了收藏...
11-06
电销朗玛卡怎么激活(电销朗玛卡怎么激活的)
本文目录一览:1、朗玛移动怎么注销2、朗玛移动手机卡,怎么注销?3、朗玛移动的卡好用吗,今天买的这个卡,当中国移动买的...
07-10
酒店商标资产的构成要素
世界级商标大师David A.Aaker在《管理商标资产》一书中将商标资产构成要素归纳为商标知名度、商标认知度、商标联想度、商...
10-23
400电话申请覆盖面非常的广阔
在我们ZG有非常辽阔的土地,而且有那么多的省份,几乎每个地区都会有非常多的企业,而这些企业都会有我们的电话的需求...
05-16
天润融通为慧聪量身打造托管呼叫中心平台
当今,是一个互联网称霸的一个时代,而电商行业一直都是淘宝,京东来称霸,他们涵盖了每个人的衣食住行。而企业大批量采购...
10-22
如何在地图标注自己店铺?如何在地图标注自己的店铺?
如何在摆渡地图上标注自己的店铺? 户:百度地图暂停“用户免费添加标注信息”的服务。对给您带来的不便,我们表示抱...
11-26
兴业银行外呼系统(兴业银行呼和浩特)
本篇文章给大家谈谈兴业银行外呼系统,以及兴业银行呼和浩特对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。...
11-06
泉州智能呼叫电话机器人(人工智能电话呼叫系统)
本文目录一览: 1、智能电呼机器人有什么作用2、ai智能电话机器人有什么作用?3、打电话语音机器人怎么弄4、智能电话机...
11-28
开封稳定外呼系统厂家的简单介绍
本文目录一览: 1、现在外呼系统哪家公司做的比较好?2、电话外呼系统怎么样,哪家的比较好用?3、外呼系统哪家公司做...
11-27
广州市财政信息中心呼叫中心服务项目公开招标公告
广东采联采购科技有限公司受广州市财政信息中心委托,根据《中华人民共和国政府采购法》等有关规定,现对广州市财政信...
10-19
如何做好微博推广网站的六个关键
显然,微博如今已经成了全中国,甚至全世界最为主流,最为人气的一个社交产品。因此,站长们也就抓住了这样的一个潮流...
10-19
抖音代运营短视频拍摄需要多少钱?抖音代运营收费套餐有哪些?
随着微信技术的不断更新和普及,抖音上的自媒体和商家也在灵敏蜕变、成长,许多的企业和商家都想在抖音这块大蛋糕上分...
03-01
外呼系统有什么用(外呼系统好用吗)
本篇文章给大家谈谈外呼系统有什么用,以及外呼系统好用吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。...
05-17
机器人拨号电销电话云呼_电话机器人
在大多数公司使用我们的电话机器人进行电话推销之后,结果是当天筛选的有意顾客可以在第二天出售,效果很好,甚至超出...
10-31
吉林网页外呼系统(哈尔滨外呼系统)
本文目录一览: 1、装置电话外呼体系要网页版好照旧软件版好? 2、什么是外呼体系?好的外呼体系哪些性能 3、外呼体系若...
11-25
实例分析PHP将字符串转换成数字的方法
下面给大家介绍PHP将字符串转换成数字的四种方法。 方法1: 使用number_format()函数。number_format()函数用于将字符串转换...
10-18
台州防封号电话营销线路服务商,外呼机器人-有效!
台州防封号电话营销线路服务商,外呼机器人及时调整操作策略,保证了联络中心的高效运行。结论:全频道呼叫中心不仅是...
12-16
喜推电销机器人(电销智能机器人代理)
本文目录一览: 1、什么是电销机器人2、有谁用过电销机器人?作用怎么样?3、如何用智能电话机器人进行电销?4、电话机器...
11-28
昆明招聘专用外呼机器人价格-质量服务保证
昆明招聘专用外呼机器人价格传统的电销系统方式,以撒网式外呼接触为主,客户消息质量不高,号码信息标签不全且无效号...
05-17
英国高等法院发布关于MERCK商标传奇的最新裁决
英国高等法院已就长期运行的Merck v Merck商标传奇案做出判决,为大大简化此复杂案件的背景,使用商标默克在制药领域的业...
10-23
Fedora 9.0 系统安装教程详细图解
这里只谈安装过程,至于是光盘还是硬盘引导,要看各位自己的具体情况了。 官方的MD5码还没有给出,所以我没有装硬的,...
10-19
PHP和正则表达式教程集合之二第1/2页
正则表达式快速入门(二) 【导读】在本文里,我们主要介绍子模式(subpatterns),逆向引用(Backreferences)和量词(quantifiers) 在上篇文章里,我们介绍了正则表达式的模式修正符与元字符,细...
10-18
本页收集关于PHP和正则表达式教程集合之二第1/2页的相关信息资讯供网民参考!
推荐文章
百度地图标注不了咋办
手机怎样使用外呼系统
企业400电话办理的价格
池州智能外呼系统
中山微信地图标注
厦门企业外呼系统招商
picc外呼系统
系统自动外呼是什么
地图标注名字怎么取消
佛山呼叫中心
沈阳点拨外呼系统违法吗
安陆代理外呼系统
广州ai电销机器人公司
台州智能外呼系统多少钱
电话机器人效果好不好
移动电销外呼客户管理系统新闻
百度地图标注电脑登陆
贵阳智能外呼系统线路商
地图标注什么价格
小加ai电销机器人
内江电话机器人价格
防封卡电销app有效果吗
西宁电销外呼系统线路
杭州外呼系统有什么用
重庆外呼系统多少钱一个月
陕西呼叫中心外呼系统哪家强
西语地图标注
地图标注单位收费吗
常德电销外呼系统软件有哪些
电信办理400电话发票
北京地铁地图标注app
电话机器人aicc是什么意思
海岛地图标注
地图标注网站入驻
大连企业外呼系统平台
商客通400电话免费办理
重庆外呼系统业务
上海营销智能外呼系统商家
百度地图标注318国道
昆明crm外呼系统平台
武汉400电话申请
舞钢外呼系统
办公外呼系统软件
电话机器人可以提高营销吗
400电话个人怎么申请
福州ai外呼系统线路
宁夏手机自动外呼系统原理是什么
威远县地图标注app
亳州市地图标注
ai电销机器人好用吗
申请400电话需要时间
凯立德地图标注店铺
机器人外呼系统软件
语音外呼系统代理商
沧州人工外呼系统软件
临沂企业外呼系统招商
电商语音电话机器人售后回访
湛江腾讯地图标注店
电销外呼系统都花钱吗
山东电商智能外呼系统推荐
做一个外呼系统需要什么资料
谷歌动物园地图标注
中继线路不让外呼
清远小型外呼系统代理商
默纳克系统外招内呼和无显示
征服者公交车站地图标注
安来客电销机器人服务商
安康如何免费申请400电话
地图标注遮挡
外呼系统需要电话卡么
申请400电话流程价目怎么样
深圳人工智能电销机器人稳定吗
桂林市语音电销机器人费用
南昌智能外呼系统收费
山东梁山怎么申请400这种电话
腾讯地图标注收费么
天津ai电销机器人加盟公司
昌吉申请400电话号码
云南语音外呼系统公司
电话机器人智能服务
杭州慧营销外呼系统好用吗
池州如何免费申请400电话
百度地图标注广州
郑州
网络外呼系统产品介绍
城市吧街景地图标注
400电话应该怎么办理
泰来县地图标注
老虎植物园地图标注
电话机器人呼叫中心视频
淄博营销外呼系统代理
如何免费申请400电话
在地图标注去过的地方
内乡企业如何申请400企业电话
盛大传奇3地图标注
手机能安装外呼系统吗
百度地图标注区轮廓
百度地图标注过了还是没有
智能电销机器人 资讯
美团地图标注商户认证入驻店
高德百度地图标注推广店
地图标注好评语
教育智能外呼系统联系方式
江西自动电销机器人系统
常州智能外呼系统供应商
外呼电话机器人营销
微擎电销机器人
盐城网路外呼系统供应商
常州手机外呼系统一般多少钱
网上办理400电话的好处
孝感外呼系统中间件
世界地图标注大洲大洋分界线
全自动智能语音电话机器人
曲阜地图标注
成都电销卡外呼系统好用吗
地图标注线路怎么弄
自动打电话的电销机器人软件
松原电子地图标注
360地图标注几天以审核通过
电话机器人的坑
PHP和正则表达式教程集合之二第1/2页
上一篇:
PHP和正则表达式教程集合之一第1/2页
下一篇:
用正则实现提取代码内容的代码
一起分享吧
产品关键词: PHP和正则表达式教程集合之二第1/2页 PHP,和,正则,表达式,教程,