matlab正则表达式的简单表示

来源:互联网 发布:怎么汉化软件 编辑:程序博客网 时间:2024/05/17 04:45
正则表达式在处理字符串及文本时显得十分方便,在perl, python等脚本语言,以及java, .net等平台上都支援正则表达式。事实上,在MATLAB中也提供了正则表达式的支持。主要包含三个常用的函数:regexp(), regexpi(), regexprep()。其中regexp()用来匹配正则表达式,regexpi()完成类似的功能,但是忽略字符串的大小写,regexprep()则按照指定的pattern完成替换功能。
MATLAB正则表达式主要包含以下特殊匹配符号:
. 匹配任何单个字符(包括空白字符)
[abc] 匹配括号里包含的任何单个字符,a或b或c
[^abc] 匹配括号中字符以外的任何单个字符,任何除a和b和c外的字符
[a-x] 匹配a-x范围内的任何单个字符
\s 匹配任何空白字符,等效于[ \f\n\r\t\v]
\S 匹配任何非空白字符,等效于[^ \f\n\r\t\v]
\w 匹配任何字母,数字或下划线字符,对于英文字符集,等效于[a-zA-Z_0-9]
\W 匹配任何除了字母,数字或下划线以外的字符,对于英文字符集,等效于[^a-zA-Z_0-9]
\d 匹配任何数字,等效于[0-9]
\D 匹配任何数字以外的字符,等效于[^0-9]
 
分组和捕获
(expr) 分组并捕获
(?:expr) 分组但不捕获
expr1|expr2 匹配expr1或者expr2
 
非匹配操作符(常用于在正则表达式内添加注释)
(?# blabla) blabla是注释内容
 
占位符
^ 字符串起始
$ 字符串结尾
\< 单词起始
\> 单词结尾
 
环视
(?=expr) 从当前位置向前看(字符串向右的方向),测试是否匹配expr
(?!expr) 从当前位置向前看(字符串向右的方向),测试是否不匹配expr
(?<=expr) 从当前位置向后看(字符串向左的方向),测试是否匹配expr
(?<!expr) 从当前位置向后看(字符串向左的方向),测试是否不匹配expr
 
定义数量
expr{m,n} 至少m次,最多n次
expr{m,} 至少m次,没有上限
expr{n} 正好n次
expr? 出现0次或1次
expr* 出现任意次(可以是0次)
expr+ 出现1次或更多次
 
捕获
(expr) 捕获匹配得到的字符串
\N 匹配第N次捕获的字符串
$N 引用第N次捕获的字符串
(?(N)s1|s2) 如果存在第N次捕获的字符串,则匹配s1,否则匹配s2
 
给捕获命名
(?<name>expr) 给捕获的字符串起名字叫name
\k<name> 匹配名叫name的被捕获的字符串
$<name> 引用名叫name的被捕获字符串
(?(name) s1 | s2) 我想您应该知道是什么意思
0 0