目录
示例:
egrep的全拼:extended regular expression 扩展的正则表达式
♡♡1 在正则表达式中,以下符号的含义
1、句点“.”用于匹配除换行符之外的任意一个字符
2、 “[]”用于指定一个字符集,从中匹配其中一个字符。
比如:只能匹配a或b或c
[abc]
3、“-”描述一个范围,例子:可以匹配所有的英文字母
[a-zA-Z]
4、“\<”和“\>”匹配一个单词
示例:
在正则表达式中对单词的定义是:指两侧由非单词字符分隔的字符串。
非单词字符指的是字母、数字、下划线以外的任何字符。
5、“^”和“$”用于匹配行首和行尾
^a[a-z]y$ #匹配所有以a开头、y结尾、a和y之间包含小写字母的行
6、字符转义“\”,匹配特殊字符,如“\.”,“\[”
7、 用户有时候希望某个字符能够不止出现一次,下面是用于重复匹配的符号
* | 重复0次或更多次 |
+ | 重复一次或更多次 |
? | 重复0次或1次 |
{n} | 重复n此 |
{n,} | 重复n次或更多次 |
{n,m} | 重复不少于n次,不多于m次 |
8、反义:“^”表示除了这个字符,其他都可以,例如
[^wer] #表示匹配除了w/e/r的所有字符
♡♡2 子表达式(分组):用括号限定
示例:
去掉括号的话:
♡♡3 分支:以“|”竖线表示,或者
1、^h|t$ #匹配以h开头或者t结尾的字母
2、Jan(uary| |\.)
#分支元字符“|”分隔了三个字符串,分别是uary、空格、句点
#这意味着January或Jan或Jan.这样的字符串都能被匹配。
♡♡4 逆向引用 \
在子表达式中捕获的内容可以在正则表达式中其他地方使用。例子:
(\<.*\>).?( )*\1
#(\<.*\>)——匹配任意长度的单词,第一个子表达式
#.?——匹配0个或1个标点符号
#( )*——匹配0个或多个空格,第二个子表达式
#\1——指代第一个子表达式匹配到的模式,如果第一个子表达式匹配到的单词是dog,这里也自动成为dog