正则表达式在处理字符串及文本时显得十分方便,在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) 我想您应该知道是什么意思

MATLAB里的正则表达式 [转]的更多相关文章

  1. matlab里textread出现错误“Trouble reading floating point number from file (row 1, field 1)”

    matlab里textread出现错误“Trouble reading floating point number from file (row 1, field 1)” 解决办法:traindata ...

  2. 如何在matlab里安装libsvm包

    有时我们需要用到SVR(支持向量回归)方法,而 matlab 自带的svm工具箱不能做回归分析,于是有了安装libsvm包的打算. 中间遇到一些困难,比如找不到编译器等等,经过一下午和一晚上的努力,在 ...

  3. sql里的正则表达式

    SQL语句还可以搭配正则表达式作为查询条件,很是有用. REGEXP_LIKE(匹配)REGEXP_INSTR (包含)REGEXP_REPLACE(替换)REGEXP_SUBSTR(提取) 表 1: ...

  4. python里使用正则表达式的非贪婪模式

    在正则表达式里,什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向 ...

  5. Matlab里面的SVM

    支持向量机是建立在统计学习理论基础之上的新一代机器学习算法,支持向量机的优势主要体现在解决线性不可分问题,它通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题. 构造出 ...

  6. ES6里关于正则表达式的拓展

    一.构造函数 在 ES5 中,RegExp构造函数的参数有两种情况. 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag) var regex = new RegExp('xy ...

  7. matlab里的svmtrain的输出model里,各参数的含义

    Parameters: [5x1 double]  %结构体变量,依次保存的是 -s -t -d -g -r等参数      nr_class: 4    %分类的个数          totalS ...

  8. matlab里.*和*的区别

    *:矩阵相乘 (cross) .*:矩阵你元素一对一相乘 (dot) 例子: >> a=[2 3];>> b=[4 5];>> a*b' ans = 23 > ...

  9. matlab里plot设置线形和颜色

    plot(x,y,'r--')% r为颜色,--为线形

随机推荐

  1. 关于as中的事件与回调函数

    对于Observer模式, 在as中object(被观察者)既可以用事件(event),也可以用回调函数(caller)来通知观察者(observer).那在实际的开发中到底应该选择用event还是用 ...

  2. javaScript DOM编程

    1.DOM概述 1.1.        什么是DOM?     DOM= Document Object Model,文档对象模型, DOM 是 W3C(万维网联盟)的标准.DOM 定义了访问 HTM ...

  3. JavaWeb基础: 学习大纲

    JavaWeb基础: Web应用和Web服务器 JavaWeb基础: Tomcat JavaWeb基础:HTTP协议和基于Restful的架构 JavaWeb基础: Web工程配置文件 JavaWeb ...

  4. C++ 与设计模式学习(其一)

    记得曾经一年前,听到同学再说设计模式,当时觉得不怎么重要,所以就没有去系统的学习,这一放,就是一年,直到前段时间,面试了一个阿里巴巴的职位,要我谈谈对于设计模式的看法. 之后就好好了看了一些文章,好好 ...

  5. hdu 3908 Triple(组合计数、容斥原理)

    Triple Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Total Su ...

  6. Touch ID集成

    作者感言 这个国庆由于种种原因, 过的不太安稳, 搬家, 办证, 东跑西跑, 忙的压根就不像是在过节....不过算了, 挑最后一天写写博文.最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系 ...

  7. Div CSS absolute与relative的区别小结

    absolute:绝对定位,CSS 写法“ position: absolute; ”,它的定位分两种情况,如下: 1. 没有设定 Top.Right.Bottom.Left 的情况,默认依据父级的“ ...

  8. [转]我来Hacking JDBC,你并不需要它

    我们喜欢和JDBC打交道,以前从未有人这样说过.很严肃的说,JDBC是一个非常优秀的API.这可能是现在Java能够成为一个受欢迎的平台的重要原因之一. 在JDK1.1之前,ODBC出现之前(很久之前 ...

  9. spring mvc读取url变量

    @RequestMapping(value="/{id}/{name}", method=RequestMethod.GET) public ModelAndView getUrl ...

  10. getParamValues()

    http://blog.csdn.net/msg_java2011/article/details/6529226