19.1 引言
正则表达式就是一个表达式(也是一串字符),它定义了某种字符串模式一一利用正则表达式,可以对大段的文字进行复杂的查找、替换等。本文将以MATLAB为编程语言,讲解正则表达式的概念和使用方法, 并将在文末以实例说明正则表达式的实践应用。
MATLAB提供的正则表达式函数有三个:
• regexp一一用于对字符串进行查找,大小写敏感。
• regexpi一一用于对字符串进行查找,大小写不敏感。
• regexprep一一用于对字符串进行查找并替换。
简要介绍一下这三个函数,以regexpi为例(读者可以先跳过这里,看过全文之后再来看这里) 。
用法1:
[start end extents match tokens names) = regexpi( ' str ' , ' expr ')
其中,start为匹配字符串的起始位置;end为匹配字符串的终止位置;extents为扩展内容,和'tokens'指示符一起用,指示出现tokens的位置;match即找到的匹配字符串;tokens匹配正则表达式中标记(tokens)的宇符串;names为匹配到的命名标记的标记名。
用法2:
若不需要所有的输出,则可以用下面的方式有选择地输出。
[v1 v2 ...]=regexpi('str', 'expr', 'q1','q2', ...)
其中,'q1' 、'q2'……为'start'、 'end'、'tokens'、'tokensExtents'、'match'、'names'之一,意义与前文相同。vl、v2……的输出顺序与ql、q2…… 一致。