正则表达式基本运用

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

一、正则表达式的相关概念

正则表达式(或称为常规表达式)是通过一些特殊字符的排列,用以搜索/替换/删除一行或多行字符串等。简而言之,正则表达式就是处理字符串的方法

正则表达式对于系统管理员来说是不可不学的,因为在系统繁忙的情况下,每天都会产生大量信息,而要从千百行的数据里查找有问题的行,用肉眼很难完成。而通过正则表达式将这些信息进行处理分析,系统管理将会变得很轻松。

二、正则表达式的基本运用及相关命令grepegrep命令

基本正则表达式:

字符匹配

.:匹配任意单个字符

[ ]: 匹配指定范围内的任意单个字符

[^]: 匹配指定范围外的任意单个字符

[0-9],[[:digit:]] 任意数字

[^0-9],[^[:digit:]] 出数字之外任意字符

[a-z],[[:lower:]] 任意小写字母

[A-Z],[[:upper:]] 任意大写字母

[[:space:]] 空白字符

[[:punct:]] 任意标点符号

[0-9a-zA-Z],[[:alnum:]] 任意字母和数字

[a-zA-Z],[[:alpha:]] 任意字母

次数匹配:

*其左侧的字符出现任意次0一次或多次;

例:以下例子中均使用1.txt

wKiom1UfxMDiqxrlAADB-bp643E412.jpg

.*任意长度任意字符工作于贪婪模式

wKiom1UfxM7j-CGcAABH3fCKBPs332.jpg

\?其左侧的字符出现0次或1

wKiom1UfxOGCuZn1AAAiHhWcYNw272.jpg

\+其左侧的字符出现1次或多次

wKioL1UfxjzREL6dAAArouj0IZI983.jpg

\{m\}精确匹配其左侧的字符出现m

wKioL1UfxkeD46JYAAAlxBaeZ-Y561.jpg

\{m,n\}匹配其左侧字符至少出现m至多出现n

wKioL1UfxlSCrGPXAAArzXmkDDM055.jpg

\{0,SimKai;">至多n

wKioL1UfxmGgMNALAAA2L79WpGg572.jpg

至少m

wKiom1UfxSmhYXnsAAAte8DTxNk563.jpg

位置锚定:

^: 锚定行首

$: 锚定行尾

^PATTERN $用模式来匹配整行

^$: 匹配空白行

wKiom1UfxTvSMZLkAAFych3M_Cw521.jpg


单词锚定:由非特殊字符组成的连续的字符串

\< :锚定词首也可用\b

\<PATTERN,\bPATTERN

\> 锚定词尾也可以用\b

PATTERN\>,PATTERN\b

wKioL1UfxzTB4NXEAAC_HH9NWxo155.jpg

\<PATTERN\>匹配PATTERN能匹配到的整个单词

wKiom1UfxhGASkyhAABJ5CQdQbI961.jpg

分组\(\)

注意分组中的模式在某次的具体匹配过程中所匹配到的字符可以被grep记忆保存于内置的变量中,这些变量是\1,\2,...),因此,还可以被引用

\1:引用,模式中自左而右,由第一个左括号以及与之对应的右括号中的模式所匹配到的内容

\2:引用,模式中自左右,由第二个左括号以及与之对应的右括号中的模式所匹配到的内容

wKioL1Ufx6rgElV4AACRYcevVAY703.jpg

三、扩展正则表达式egrep命令

扩展正则表达式简化了基础正则表达式的命令,使用起来更加方便

扩展的正则表达式元字符及其意义:

*: 匹配任意次

?01

+: 至少1

{m}精确匹配m

{m,n}至少m至多次

至少m

{0,SimKai;">| 或者a|ba或者b 或者两侧的所有内容


grep命令

grep [OPTIONS] PATTERN [FILE...]

模式中包含变量,变量替换需双引号“”,否则单双引号都可以

-o: 显示被模式匹配到的内容

-i: ignore case不区分字符大小写

-v: 显示不能够被模式匹配到的行(匹配到的不显示)

-E使用扩展的正则表达式egrep

-A #after 被模式匹配到的行及后边的#

-B #:before被模式匹配到的行及前边的#

-C #-C 2 前后各两行

例子

显示/etc/rc.d/rc.sysinit文件中以#开头后面跟至少一个空白字符,而后又有至少一个非空白字符的行

基本正则表达式# grep "^#[[:space:]]\+[^[:space:]]\+"/etc/rc.d/rc.sysinit

扩展正则表达式# egrep "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit

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