通配符、正则表达式的记录

一、通配中的元字符的意义如下(不使用正则表达式):

* 表示任意多的任意字符

? 表示一个任意字符

^ 表示取反

[] 同正则表达式的用法

{} 表示一组表达式的集合 {}中表达式是或的关系

如 ls -l {*.cpp,[1234]*.c} 列出满足表达式*.cpp 或者[1234]*.c的文件

二、正则表达式

bash shell本身不支持正则表达式,使用正则表达式的是shell的一些命令和工具,如grep,sed ,awk

bash可以使用正则表达式中的一些元字符实现通配的功能。

1、基本正则表达式中元字符:

* 区配*前面的那一个字符的0次或多次

如hel*o heo helo hello helllo hellllllllo ....

. 匹配任意一个字符(只匹配一个,可以是空格)

如ab. abc abd ab3 ab ....

^ 匹配行首

如^suda sudakjkjlkjlkjlk  sudaokokookokook

$ 匹配行尾

如 suda$ kokokokosuda    abababsuda

特殊的 :^$ 匹配一个空行

^.$ 匹配只有一个字符的空行

[] 匹配字符集合中的任意一个字符(只匹配一个)

如[1234] [1-4]  匹配1234的任意一个字符

[^1234]  [^1-4]  取反,区配不是1234的任意一个字符

[A-z] [A-z]* 匹配任意一个英文单词

\  用于转义元字符,使之成为普通字符

如\* 此时*表示一个普通字符

\<\> 用于精确匹配

如\<the>\ 表示精确匹配the这个单词,而不是them then 等等

\{\} 系统符号

\{n\} 匹配前面字符的n次

\{n,\} 匹配前面字符的至少n次

\{n,m\} 匹配前面字符的n-m次,至少n次,至多m次

如JO\{3\}B 匹配 JOOOB

如JO\{3,\}B 匹配 JOOOB ,JOOOOB ...

如JO\{3,6\}B 匹配 JOOOB ,JOOOOB JOOOOOB , JOOOOOOB

2、扩展的正则表达式中元字符的意义如下:

? 区配前面的那个字符的0次或1次

如JO?B 匹配 JB JOB JOOB

+ 匹配前面的那一个字符的1次或多次

如JO+B 匹配 JOOB JOOOB ....

| 与() 通常结合使用,表示一组可选 的字符集合

如 re(a|o|e)d 区配read reod reed

等同于 re[aoe]d

时间: 2024-08-05 16:33:55

通配符、正则表达式的记录的相关文章

通配符&amp;正则表达式&amp;特殊符号总结

通配符 概念 bash操作环境下的功能. * 代表0个到任意多个字符 ? 代表一定有一个任意字符 [] 代表一定有[]中的一个字符.如g[a,b,c]d表示gad.gbd.gcd [-] 代表一定有编码顺序内的所有字符.如g[0-9]d表示g0d.g1d.g2d....g9d [^] 代表反向选择.如g[^abc]d表示gdd.ged.gfd....gzd.g0d.g1d... 特殊字符 #       注释 \        转义符号 |       管道符 ;        命令分隔符,多条

【js 正则表达式】记录所有在js中使用正则表达式的情况

说实话,对正则表达式有些许的畏惧感,之前的每次只要碰到需要正则表达式去匹配的情况,都会刻意的躲过或者直接从度娘处获取. 此时此刻,感觉到了某一个特定的点去触及她.但笔者对于正则表达式使用上的理解是这样的,仅仅对她的发展历史和使用语法粗略的过了一遍,接下来就是一次一次的使用和记录下和她的每次邂逅.慢慢的,就能在心里勾勒出她最美的一面. 本篇仅记录正则表达式在js中的邂逅经历,如有读者想在其中窥探她的某种语法,直接搜索你想要实现的功能即可,例如[特定字符 多次匹配]之类的即可. 1.特定字符 全部匹

关于爬虫的正则表达式一点记录

今天再爬虫的正则表达式里纠结了很久,记录下来,防止忘记再浪费时间 content = requests.get(url) m=re.findall(r'<a href=\"([0-9a-zA-Z\_\/\.\%\?\=\-\&]+)\"',content.text,re.I) 一开始,我把content变成str(content)放在正则匹配式中,无法匹配,可能是因为str(content)是空的. 所以一定要用content.text来匹配 原文地址:https://w

notepad++ 正则表达式(记录)

删除操作notepad++去掉行尾空格或逗号查找目标:\s+$ (或,+$)替换为空Note: 以换行符结尾表示是$\r\n,而不是\r\n$ notepad++删除文本文件里面的空白行查找目标:^[ \t]*\n或者:^\r\n替换为空 notepad++去掉只有数字的行查找目标:^[\d]+$\r\n替换为空 notepad++去掉不是以某个数开头的行查找目标:^[^1].*\r\n替换为空 notepad++去掉所有行中的<>(里面不能嵌套<>)查找目标:<[^>

正则表达式简单记录

下面是一个更复杂的表达式:\(?0\d{2}[) -]?\d{8}. 这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等.我们对它进行一些分析吧:首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8}). (\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式.要理解这个表达式,请按下列

java正则表达式学习记录

正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的.正则表达式可以用于搜索.编辑或者是操作文本和数据.它超出了 Java 程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式.正则表达式的变化是复杂的,一旦你理解了它们是如何被构造的话,你就能解析或者构建任意的正则表达式了. 字符类 字符类 [abc] a, b 或 c(简单类) [^abc] 除 a, b 或 c 之外的任意字符(取反) [a-zA-Z] a 到

正则表达式学习记录

*匹配前面的表达式0次或者更多次,等效于{0,}+匹配前面的表达式1次或者更多次,等效于{1,}?匹配前面的表达式0次或者1次,等效于{0,1}{n}匹配确定的次数{n,}至少匹配n次{n,m}匹配n到m次$匹配输入字符串的结尾位置()标记一个子表达式的开始和结尾位置[标记一个中括号的开始..匹配除换行符(\n)之外的任意单字符.^匹配字符串的开始位置,如果在[]中,则表示不接受[]中的内容{标记限定符表达式的开始|指明两项之间的一个选择\b匹配一个字边界,即字与空格之间的位置\B匹配一个非字边

通配符和正则表达式-grep,egrep,fgrep

通配符和正则表达式-grep,egrep,fgrep 通配符和正则表达式,通配符用于文件名匹配,命令支持ls,cp,rm等;正则为通用匹配,命令支持grep,awk,sed,vi,find等.文本过滤工具grep,egrep,fgrep 通配符 *  匹配零个或多个任意字符 ?  匹配单个任意字符 [] 匹配指定范围内的一个字符,[]括号中的 字符间隔符 可以省略,如,\=:等等.举例[1:2=3,5\7] = [12357],也推荐使用这种省略写法作为标准 ^  取反,表示非.注意:非数字即包

linux通配符和正则表达式 + notepad++

http://blog.csdn.net/pipisorry/article/details/24143801 通配符(bash 操作) 在 bash 操作环境中还有一个非常有用癿功能,那就是通配符 (wildcard) ! 用 bash 处理数据就更方便了! 常用通配符 除了通配符外,bash 环境中的特殊符号 Note: 1. 理论上,你的『档名』尽量不要使用上述字符 2. 如bash命令find可以使用通配符 正则表达式 正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊