正则表达式概述

使用strfind函数可以实现字符串的查找。需要注意的是,使用这些函数进行查找时,都是对固定字符串进行查找。比如:

>> strfind("HeLABlo MATLAB","LAB")

ans =

3 12

都是从给定字符串中查找固定的子字符串“LAB”。

如果情况更加复杂,需要查找以“L”打头,“AB”结尾的子字符串,例如“L123AB”,“L-df3AB”,”LAB”等,使用上面的函数查找就力不从心了。因为要查找的子字符串不是固定的。这时就需要用正则表达式来描述以“L”打头,“AB”结尾这种情况。

其他情况,比如从一个网页的文本中提取出电话号码、手机号码、电子邮箱等,这都需要用到正则表达式。所以正则表达式描述的是一个匹配规则。

确切地讲,正则表达式是由普通字符和一些元字符组成的逻辑表达式,普通字符包括数字和大小写字母,元字符则用字符或字符的组合表达特殊的含义。所以,正则表达式其实就是按照事先定义好的规则来组合普通字符和元字符,表达字符串的匹配逻辑,执行查找时对表达式进行解析,了解它所表达的意图并进行匹配,最后找到需要查找的内容。

由于文本查找和替换的需求很常见,在各种语言中都有正则表达式的内容。在不同的语言中,正则表达式的编写规则几乎是相同的,区别在于编译和处理正则表达式的语法有所不同。