正则表达式学习笔记

来源:互联网 发布:产品经理数据敏锐度 编辑:程序博客网 时间:2024/06/06 00:19

正则表达式简介

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。


正则表达式中的各种字符

·普通字符

普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

·非打印字符
【\cx】——匹配由x指明的控制字符;

【\f】——匹配一个换页符。等价于\x0c和\cL;

【\n】——匹配一个换行符。等价于\x0a和\cJ;

【\r】——匹配一个回车符。等价于\x0d和\cM;

【\s】——匹配任何空白字符,摆阔空格、制表符、换页符等。等价于[\f\n\r\t\v];

【\S】——匹配任何非空白字符。等价于[^ \f\n\r\t\v];

【\t】——匹配一个制表符。等价于[\09]和[\cl];

【\v】——匹配一个垂直制表符。等价于\x0b和\cK。

·特殊字符

【$】——匹配输入字符串的结尾位置;

【()】——标记一个子表达式的开始和结束位置;

【*】——匹配前面的子表达式零次或者多次;

【+】——匹配前面的子表达式一次或者多次;

【.】——匹配除换行符\n之外的任何单字符。

【[】——标记一个中括号表达式的开始;

【?】——匹配前面的子表达式零次或者一次,或指明一个非贪婪限定符;

【\】——将下一个字符标记为或特殊字符、或原意字符,或向后引用、或八进制转义符;

【^】——匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合;

【{】——标记限定符表达式的开始;

【|】——指明两项之间的一个选择。

·限定字符

【*】——匹配前面的子表达式零次或者多次;

【+】——匹配前面的子表达式一次或者多次;

【?】——匹配前面的子表达式零次或者一次;

【{n}】——n是一个非负整数,匹配确定的n次;

【{n,}】——n是一个非负整数,至少匹配n次;

【{n,m}】——m和n均为非负整数,其中n<=m,最少匹配n次且最多匹配m次。

注意:【*】、【+】和【?】都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们后面加上一个【?】就可以实现非贪婪或者最小匹配。

·定位符

【^】——匹配输入字符串开始的位置;

【$】——匹配输入字符串结尾的位置;

【\b】——匹配一个字边界,即字与空格间的位置;

【\B】——非字边界匹配。

原创粉丝点击