0
点赞
收藏
分享

微信扫一扫

LabVIEW使用图像处理进行交通控制性能分析

        正则表达式(Regular Expression, 缩写常用regex, regexp表示)是计算机科学中的一个概念,很多高级语言都支持正则表达式。

目录

何为正则表达式

语法规则

普通字符

字符转义


何为正则表达式

        正则表达式是根据一定规则构建而出的规则,用于匹配字符串中子串或字符组合的模式。正则表达式可以通过符号+字符的形式来表示,完成对一系列符合某个语法规则的字符串的匹配。很多应用中也有对正则表达式的应用,例如Visual Studio中的查找替换功能、谷歌百度搜索引擎中的搜索字段等。

        在开发当中,正则表达式也扮演着十分重要的角色。比如我们在做了一个文本输入框,需要判断文本输入框中是否为邮箱格式,那么此时就可以通过正则表达式来实现判定匹配(可以用繁长的if else这类语句实现,但这也偏离了正则表达式的设计初衷了~)

        OK,接下来让我们来看看Golang中正则表达式的语法


语法规则

普通字符

        普通字符是正则表达式的基本组成之一,是正则表达式的“基石”。普通字符包括有“可打印字符”、“不可打印字符”,其中“可打印字符”中又包含了大写字母、小写字母、数字、标点符号和其他一些符号

        这里设计一个场景,假设我们需要判断一个字符变量是否是数字,若不考虑使用正则表达式,那么要实现这个判断,我们需要使用下列代码

switch num {

	case 1 :
	case 2 :
	case 3 :
		.
		.
		.
	case 0 :	

}

        又或者借助多个if else语句(在这里不一一列举了)。如果用这种方式,开发效率将会大打折扣。

        此时,我们便可以尝试使用正则表达式了~

[0123456789]

        方括号“[]”表示的是一个“字符组”,代表一位字符。方括号中的数字“0123456789”表示只要待匹配的字符串与其中任何一个字符相同,那么程序就会认为匹配成功,反之匹配失败。

        如果想表达的数字(ASCII码)是连续的,那么也可以用元字符“-”来对表达式进行简化,见下方:

[0-9]

        依次类推,当我们想判断一个长度为1的字符串是否是英文小写字母,可以写成:

[a-z]

        那像表示由大写字母“A”到小写字母"z"呢?这里要注意,我们不能写成 [A-z],观察拓展中的ASCII表,其中在字母“A”和字母"a"之间存在其他字符。

        那么正确的表达方式应是

[a-zA-Z]

        如果要判断长度为2的字符串中是否含有小写字母呢?

[a-z][a-z]

        当允许的字符范围只有一个时可以省略“[]”。比如,判断输入的是“Hello”还是"hello":

[Hh]ello

字符转义

        在正则表达式中,有时我们需要使用符号本身的意义,例如之前所用到的字符‘-’,如果在没进行转义的情况下,它是一个元字符,是一个“功能性”的符号;当我们确实需要表达‘-’这个符号的本义时,就需要使用反斜杠‘\’了。例如若要匹配‘[’符号,则可以表示为:

[\[]

        如果想匹配“a” “-” “z” 这三个字符,那么便可以用下列表达式:

[0\-9]

更新中……

举报

相关推荐

0 条评论