正则表达式和理解

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

正则表达式:

正则表达式:由元字符和正常字符组合而成

文本处理工具:grepegrep,sed,awk,vim,Nginx

grep:全局搜索正则表达式,搜索结果那一行显示出来

文本搜索工具:根据用户条件,用元字符和正常字符对目标文件进行逐行搜索搜索结果显示出来

grep [options],PATTERN [FILE...]

--color[=when],--colour[=when] 搜索出来的结果进行颜色显示

auto

always

never

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

-i:被匹配到内容不区分大小写

-v:显示不能被匹配到的行

-E:扩展的正则表达式

-A#

如果需要做变量替换的话需要加“”双引号,否则变量将无法识别

如:user=”root”

grep�color=auto “$user” /etc/passwd

正则表达式:(1):由元字符和正常字符组合而成模式,

2)元字符不表示字符本身意义,主要用于表达控制或通配功能

基本正则表达式:grep

扩展正则表达式:grep �Eegrep

fgrep:fast,不支持使用正则表达式

基本正则表达式元字符:

.:匹配任意单个字符

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

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

注:[ ]这个是字符是固定格式

在使用所有字符或空格字符等一些字符的时候要加上

[[:digit:]][[:space:]]这类表达方式

[0-9],[[digit]]表示所有数字

[A-Z],[[:upper:]]表示所有大写字母

[a-z],[[:lower:]]表示所有小写字母

[[:space:]] 所有空格字符

[[:alnum:]] 所有字母

[0-9a-zA-Z],[[:alnum:]]所有的数字和字母

次数匹配:在匹配字符后加一个控制符,来表达前面字符想要匹配到的次数

* :任意长度,可以是0次,一次或多次

注:*只对匹配 它前面字符有效

.* :任意长度的任意字符

工作于贪婪模式

\?:0次或1次,表示其左侧字符可以可无

\+:1次或多次:其表示左侧字符至少出现1

\{m\}: m次:表示其左侧字符精确出现m次:

\{m,n\}:至少m次,至多n次(m<n

\{0,n\}:至少n

\{m,\}:至少m

位置锚定:

^:锚定行首

$:锚定行尾

^$:匹配空白行:

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

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

\>:锚定词尾,也可用\b

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

分组:\\

ab*c

在分组中将ab看成一个单词,在*左侧表示可有可无

\(a.b\).*\1”

Howare you

Howdou you do

“\(y.u\).*\1”

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

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

注意:分组中模式,在某次匹配中被grep记忆(保存在变量\1\2...,也可以被引用

匹配到正则表达式元字符自己的意义要使用转义符/

例:

扩展的正则表达式:

.:匹配任意单个字符

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

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

注:[ ]这个是字符是固定格式

在使用所有字符或空格字符等一些字符的时候要加上

[[:digit:]][[:space:]]这类表达方式

[0-9],[[:alnum:]]所有的数字和字母

扩展的正则表达式次数匹配时,大多数情况下无须使用转义符\

*:任意次

?:匹配其前的字符01

+:至少一次

{m}:精确匹配到m

{m,n}:至少m次,至多次

{m,}:至少m

{0n}:至多n

位置锚定:

^:锚定行首

$:锚定行尾

^$:匹配空白行:

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

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

\>:锚定词尾,也可用\b

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

分组:

()

或者:

a|ba或者b (或者是两侧所有内容)

命令:

grep �E pattern FILE...

egrep PATTERN FILE...

文件查找工具:locatefind

locate: 根据此前updatedb命令生成数据库来完成文件查找

查找方式:查找的是文件名,并非是文件查找所需要的路径

非实时查找,模糊查找:查询结果不精确

必要时,可手动执行updatebd 命令 I/O占用率奇高

find命令:通过遍历指定的目标目录,实时查找符号指定属性文件

精确匹配:速度略慢

find [options] [查找路径] [查找条件][处理动作]

查找:

-name 文件名”:文件支持使用globbing

如:find /etc �name “paawd”

-iname “根据文件名查找

-user username:根据属主查找

-group username:根据属组查找

-uid UID:根据指定UID查找

-gid GID:根据指定的GID查找

-nouser:查找没有属主的文件

-nogroup:查找没有属组的文件

组合查找条件:

与:-a,查找条件1 �a 查找条件2 �a.....

所有条件必须同时满足

或:-o,查找条件1 �o 查找条件2 �o....

满足其中一个条件即可

非:-not,!

-not 查找条件

查找条件2

-type TYPE:根据文件类型查找

f:普通文件

d:目录文件

l:符号文件

b:设备文件

c:字符设备文件

p:命令名管道文件

s:套接文件

-size:[+|-]#unit

Unit(文件大小的单位)

带上+号就表示大于你要查找文件

带上- 号就表示小于你要查找文件

常用单位有:k,M,G

根据时间戳查找:

以“天” 为单位

-atime [+|-]#

-mtime[+|-]# 最近修改过的文件

-ctime[+|-]# 最近改变的文件

以“分钟” 为单位

-amin [+|-]#

-mmin

-cmin

根据权限查找

-perm [+|-]mode(权限)

Mode:mode做精确匹配

+mode:任何一类用户的权限只要能包含对其指定的任何一位权限即可

wKiom1UhWYyiC18YAAGiGS1SrC4191.jpg

wKiom1UhWYyxOfhNAAIRuBUq-Xg340.jpg

wKioL1UhWtCRfFm9AAKg3no4zB0183.jpg

wKiom1UhWY3TbZT4AAKTbvMwLHM986.jpg

wKioL1UhWtGDE2UhAAJ4dET4G5g666.jpg

wKiom1UhWY3h7qenAAI7Km5E1J8605.jpg

wKioL1UhWtLQU9QgAAE9_Y5adyk275.jpg

wKiom1UhWY7x6g8rAAEuDycHCNo603.jpg

wKioL1UhWtKgm8rkAAGF1HjJ3m0487.jpg

wKioL1UhWtPDMapyAAGa3-jkJ9s836.jpg

wKiom1UhWY_g6nikAAKUPHrB-dU459.jpg

-mode:每一类用户的权限都包含对其指定的所有权限

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