欢迎来到天天文库
浏览记录
ID:44195810
大小:158.50 KB
页数:15页
时间:2019-10-19
《matlab中正则表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正则表达式正则表达式正则表达式是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现。一个正则表达式就是由普通字符以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。正则表达式是非常复杂的,不要希望一次都掌握,理解正则表达式能做什么(字符串的匹配、字符串的提取、字符串的替换),掌握常用的正则表达式用法,以后用到再查就行。元字符1.:匹配任何单个字符。Eg:正则表达式“f.y”能匹配如下字符串:“fly”、“fuy”、“fy”,但是不匹配“fuuy”[]:匹配括号中的任何一个字符
2、。Eg:正则表达式“b[aui]g”匹配bug、big和bag,但是不匹配beg、baug。可以在括号中使用连字符“-”来指定字符的区间来简化表示,例如正则表达式[0-9]可以匹配任何数字字符,这样正则表达式“a[0-9]c”等价于“a[0123456789]c”就可以匹配“a0c”、“a1c”、“a2c”等字符串;还可以制定多个区间,例如“[A-Za-z]”可以匹配任何大小写字母,“[A-Za-z0-9]”可以匹配任何的大小写字母或者数字。():将()之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区
3、域。改变优先级、定义提取组两个作用。
4、:将两个匹配条件进行逻辑“或”运算。'z
5、food'能匹配"z"或"food"。'(z
6、f)ood'则匹配"zood"或"food"。*:匹配0至多个在它之前的子表达式,和通配符*没关系。例如正则表达式“zo*”能匹配“z”、“zo”以及“zoo”;+:匹配前面的子表达式一次或多次,和*对比(0到多次)。例如正则表达式9+匹配9、99、999等。“zo+”能匹配“zo”以及“zoo”,不能匹配"z"。?:匹配前面的子表达式零次或一次。例如,"do(es)?"可以匹配"do"或"does"。一般用来匹配“
7、可选部分”。{n}:匹配确定的n次。例如,“e{2}”不能匹配“bed”中的“e”,但是能匹配“seed”中的两个“e”。{n,}:至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配“seeeeeeeed”中的所有“e”。{n,m}:最少匹配n次且最多匹配m次。“e{1,3}”将匹配“seeeeeeeed”中的前三个“e”。^:匹配一行的开始。例如正则表达式“^regex”能够匹配字符串“regex我会用”的开始,但是不能匹配“我会用regex”。^另外一种意思:非!$:匹配行结束符。例如正则表达式“点名$”能够匹配字
8、符串“现在开始点名”的末尾,但是不能匹配字符串“点名啦”简写表达式注意这些简写表达式是不考虑转义符的,这里的就表示字符,而不是C#字符串级别的,在C#代码中需要使用@或者双重转义。d:代表一个数字,等同于[0-9]D:代表非数字,等同于[^0-9]s:代表换行符、Tab制表符等空白字符S:代表非空白字符w:匹配字母或数字或下划线或汉字,即能组成单词的字符W:非w,等同于[^w]d:digital;s:space、w:word。大写就是“非”.Net中的正则表达式1正则表达式在.Net就是用字符串表示,这个字符串格式比
9、较特殊,无论多么特殊,在C#语言看来都是普通的字符串,正则表达式(RegularExpression)的主要类:Regex常用的3种情况:判断是否匹配:Regex.IsMatch(“字符串”,”正则表达式”);字符串提取:Regex.Match(“字符串”,“要提取的字符串的正则表达式”);字符串提取(循环提取所有):Regex.Matches()字符串替换:Regex.Replace(“字符串”,”正则”,”替换内容”);Regex.IsMatchRegex.IsMatch方法用于判断一个字符串是否匹配正则表达式。字符串匹配例子:Rege
10、x.IsMatch("bbbbg","^b.*g$");Regex.IsMatch("bg","^b.*g$");Regex.IsMatch("gege","^b.*g$");字符串匹配案例1判断否是合法的邮政编码(6位数字)Regex.IsMatch("100830","^[0-9]{6}$")Regex.IsMatch("119",@"^d{6}$");解释:由元字符定义得知“[0-9]”表示0到9的任意字符,“{6}”表示前面的字符匹配6此,因此“[0-9]{6}”中的{6}表示对数字匹配6次。简写表达式得知“[0-9]”可以被“
11、d”代替,所以第二种写法“d{6}”也是正确的。字符串匹配案例2判断一个字符串是不是身份证号码,即是否是15或18位数字。错误写法:Regex.IsMatch(“1234567
此文档下载收益归作者所有