正则表达式及扩展

前端之家收集整理的这篇文章主要介绍了正则表达式及扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则表达式:

正则表达式是对 字符 串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要 应用对象 是文本,因此它在各种 文本编辑器 场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容

基本正则表达式:

grep:根据模式去全面的搜索文本,并将符合模式的文本行显示出来
grep [options] PATTERN [FILE...]
-i 忽略大小写
--colour/color 颜色显示
-v 反向查找,显示没有被模式匹配的行
-o 只显示被模式匹配到的字符串
:任意长度的任意字符
?:任意单个字符
-E:使用扩展正则表达式
-A#:当某一行被显示时一同显示后边的#行
-B#:当某一行被显示时一同显示前边的#行
例如:
1、grep "#" /etc/passwd
把/etc/passwd中带#的行都显示出来
2、-i 忽略大小写
grep-i "Ss" /etc/inittab
3、-v 反向查找
grep -v "#" /etc/inittab
4、锚定行首
grep "^#" /etc/passwd
显示/etc/passwd中以#开头的行

扩展正则表达式:

1、字符匹配:
.:任意单个字符
[]:范围内
[^]:范围外的
字符集合:
空白字符: [:space:]
标点符号:[:punct:]
小写字母:[:lower:]
大写字母:[:upper:]
大小写字母:[:alpha:]
数字和大小写字:[:alnum:]
数字:[:digit:]
grep "^[[:digit:]]" /etc/passwd
显示/etc/passwd中以数字开头的行
2、次数匹配:
*:其前面字符任意次
?:其前面字符的0次或者一次
+:匹配此前面的字符至少一次 '[[:space:]]+' 至少一个空字符
{m,n}:匹配m到n次,不需要再用\
3、位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首 grep '^ro' /file
$:锚定行尾,此字符前面的任意内容必须出现在行尾 grep 'ro$' /file
^$:空白行
\<:其后面的任意字符必须作为单词首部出现
\>:其前面的任意字符必须作为单词的尾部出现
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现
4、分组:
\(\) 用于分组
\(ab\):ab整体可以出现1次或2次,后向引用,被前面括号括起来的内容在后面用一个符号可以重新引用
\1:引用第一个左括号与之对应的右括号所括起来的所有内容

猜你在找的正则表达式相关文章