正则表达式

一、正则表达式

1、匹配字符的类型

[a-z]:小写字母

[A-Z]:大写字母

[a-Z]:小或大写字母

[0-9]:数字

[a-zA-Z0-9]:表示匹配一个为字母或数字的字符

. :匹配1个任意字符,空格除外 

[0-f]:16进制数

abc | def:abc或def

a (bc | de) f:abcf 或 adef

<:单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词

>:单词尾

[^表达式]:除小写字母以外的所有字符,如此类推。

2、后跟以下符号控制匹配的数量

此类符号的左侧要有上面第一点的表达式

表达式*:0或n个字符

表达式+:1或n个字符

表达式?:0或1个字符

表达式{n}:n个字符

表达式{n:m}:n到m个字符

表达式{n,}:至少n个字符

【例】[a-z]*表示匹配0个或多个小写字母

3、将匹配的字符控制在头尾

^表达式:头部符合

表达式$:尾部符合

 

二、Linux三大文本处理工具

1、egrep 筛选工具

grep的扩展版,可以使用正则表达式

语法:

egrep -选项  ‘正则表达式’  文件名

选项:

-n :显示行号

-o :只显示匹配的内容

-q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl ‘root’ /etc

-A :如果匹配成功,则将匹配行及其后n行一起打印出来

-B :如果匹配成功,则将匹配行及其前n行一起打印出来

-C :如果匹配成功,则将匹配行及其前后n行一起打印出来

–color

-c :如果匹配成功,则将匹配到的行数打印出来

-i :忽略大小写

-v :取反,不匹配

-w:匹配单词

2、sed 流编辑器

语法:

语法1:sed  -选项  ‘数字定位+命令’  文件名

选项:

-n:静默模式,不输出

-e:多项编辑,这个不是很清楚

-i:直接修改文件内容,而不是输出

-r:扩展模式,可使用正则表达式

-f:指定文件名,将动作写在新的文件内

定位:

①数字定位(输入行序号定位)

1:单行 

1,3:范围 从第一行到第三行

2,+4:匹配行后若干行

4,~3:从第四行到下一个3的倍数行

2~3:第二行起每间隔三行的行

$:尾行

1!:除了第一行以外的行

【例】sed -n ‘1p’ /etc/passwd

②正则表达式定位

正则必须用//包裹起来

扩展正则需要用 -r 参数或转义

替换可使用正则表达式的子模式,即小括号(),可以、代表子模式

【例】sed -r ‘s/(.)(.)// file1 表示将匹配到的第一部分和第二部分替换

*贪婪选项:填上g,代表把一行中所有匹配项替换

命令:

a ∶ 追加append, 

c ∶ 改变change, 

d ∶ 删除delete,

i ∶ 插入insert, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)

p∶ 列印print

s∶ 取代substitute,可以直接进行替换的工作。通常这个 s 的动作可以搭配正则表达式。例如 1,20s/old/new/g

*s命令特别说明:

使用{命令1:命令2:命令3}可增加使用多个命令

s命令语法:sed  -r  ‘替换命令s/正则表达式/替换内容/贪婪选项g’  文件名

3、awk 文本分析工具

由命令、正则(需要用//包围起来)、比较和关系运算组合而成

使用option中的-F参数定义间隔符号

用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域,NF变量表示当前记录的字段数

语法

awk -选项 参数  ‘逻辑判断{命令 变量1,变量2,变量3}’ 文件名

选项

-F 定义字段分隔符,默认的分隔符是连续的空格或制表符

-v 定义变量并赋值 也可以借用次方式从shell变量中引入

AWK变量

NR 当前记录的个数(全部文件连接后的统计)

FNR 当前记录的个数(仅为当前文件的统计,非全部)

FS 字段分隔符 默认为连续空格或制表符,可以使用多个不同的符号做分隔符 -F[:/]

OFS 输出字符的分隔符 默认是空格

【OFS例】

# awk -F: ‘OFS=”=====” {print $1,$2}’ /etc/passwd
root=====x

NF 当前读入行的字段个数

ORS 输出记录分隔符 默认是换行

【ORS例】

# awk -F: ‘ORS=”=====” {print $1,$2}’ /etc/passwd
root x=====bin x=====

FILENAME 当前文件名

【例1】使用AWK变量
# awk ‘{print NR,FNR,$1}’ file1 file2 
1 1 aaaaa
2 2 bbbbb
3 3 ccccc
4 1 dddddd
5 2 eeeeee
6 3 ffffff
# 

【例2】引用shell变量的方法

# a=root
# awk -v var=$a -F: ‘$1 == var {print $0}’ /etc/passwd
或者 把整个命令拆开传递,让shell变量外露,
# awk -F: ‘$1 == “‘$a'” {print $0}’ /etc/passwd
# a=NF
# awk -F: ‘{print $’$a’}’ /etc/passwd

 

逻辑运算(可直接引用域进行运算)

= += -= /= *=:赋值

&& || !:逻辑与 逻辑或 逻辑非

~ !~:匹配正则或不匹配,正则需要用 /正则/ 包围住

< >= != ==:关系,比较字符串时要把字符串用双引号引起来

$:字段引用需要加$,而变量引用直接用变量名取

+ – * / % ++ –:运算符

转义序列

\ 自身

$ 转义$

制表符

退格符

回车符

换行符

c 取消换行

  

有错误请指正,更多详细资料参考:

以上就是正则表达式的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/186023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月1日 10:21:57
下一篇 2025年11月1日 10:22:35

相关推荐

  • 如何在 VS Code 中解决折叠代码复制问题?

    解决 VS Code 折叠代码复制问题 在 VS Code 中使用折叠功能可以帮助组织长代码,但使用复制功能时,可能会遇到只复制可见部分的问题。以下是如何解决此问题: 当代码被折叠时,可以使用以下简单操作复制整个折叠代码: 按下 Ctrl + C (Windows/Linux) 或 Cmd + C …

    2025年12月24日
    000
  • 姜戈顺风

    本教程演示如何在新项目中从头开始配置 django 和 tailwindcss。 django 设置 创建一个名为 .venv 的新虚拟环境。 # windows$ python -m venv .venv$ .venvscriptsactivate.ps1(.venv) $# macos/linu…

    2025年12月24日
    000
  • css怎么设置文本的行距

    在css中,可以利用line-height属性来设置文本的行距,该属性的作用就是设置行间的距离、调节每行文字字体间距的,只需要给文本元素添加“line-height:间距值;”样式即可;需要注意,间距值不可为负值。 本教程操作环境:windows7系统、CSS3&&HTML5版、De…

    2025年12月24日
    000
  • css如何实现禁止选择文本

    css实现禁止选择文本的方法是,添加user-select属性,并且将属性值设置为none,表示文本不能被选取,具体代码如【user-select:none;】。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 在 web 浏览器中,如果我们在文本上双击,文本会被…

    2025年12月24日
    000
  • css怎么设置文本内容居中

    css设置文本内容居中的方法是,给文本元素添加text-align属性,并且将属性值设置为center即可,例如【h1 {text-align: center}】,表示把标题的水平对齐方式设置为居中。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 text-al…

    2025年12月24日
    000
  • css怎么设置文本居中对齐

    css设置文本居中对齐的方法:可以利用text-align属性来实现,如【p{text-align:center;}】。我们也可以设置文本居左或居右,如【text-align:left;】或【text-align:right;】。 本文操作环境:windows10系统、css 3、thinkpad …

    2025年12月24日
    000
  • css怎么隐藏文本超出部分

    css隐藏文本超出部分的方法:可以利用text-overflow属性来实现,如【text-overflow:ellipsis;】。属性值ellipsis表示用省略号来代表超出部分的文本。 属性介绍: text-overflow属性指定当文本溢出包含它的元素,应该发生什么。 (学习视频分享:css视频…

    2025年12月24日
    000
  • css怎么实现文本的垂直排列

    css实现文本的垂直排列的方法:可以利用writing-mode属性来实现,如【writing-mode: vertical-rl;】。writing-mode属性定义了文本在水平或垂直方向上如何排布。 本教程操作环境:windows10系统、css3,本文适用于所有品牌的电脑。 writing-m…

    2025年12月24日
    000
  • css实现禁止选中文本

    css代码: .box { /* 禁止选中文本 */ -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-user-select: none; /*IE10*/ -khtml-user-select:…

    2025年12月24日
    000
  • css实现文本图标对齐的方法

    开发中遇见图片跟文字放在一行显示是最常见不过的了,两个行内元素的对齐通常也是最令人头疼,有时候明明使用了最常用的对齐方法,却总还是有些许偏差,先来看一个最基本的示例: html部分: @@##@@ xx测试对齐Style- 推荐教程:CSS入门教程 css部分: .wrap { width: 300…

    2025年12月24日 好文分享
    000
  • css文本单行超出和多行超出省略号分别如何实现?

    有时候在设计网页的时候可能会遇到文本太长而导致页面不太美观,那么如何来解决这个问题呢?本篇文章将给大家来介绍关于css文本单行超出省略号以及多行文本超出省略号的实现方法。 首先我们来看一看css实现单行文本超出省略号的方法。 css实现单行文本的溢出显示省略号应该用text-overflow:ell…

    2025年12月24日
    000
  • CSS怎么设置垂直居中?

    在我们开发前端页面的时候,为了让页面效果美观,会出现需要垂直居中效果的地方。本章就让我们来了解一下用css如何设置垂直居中,详细介绍一下设置文字与div盒子的垂直居中的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 推荐手册:CSS在线手册 一:css如何设置文本文字垂直居…

    2025年12月24日 好文分享
    000
  • css渐变色彩 省略标记 嵌入字体 文本阴影的全面介绍

    下面为大家带来一篇css渐变色彩 省略标记 嵌入字体 文本阴影全面了解。内容挺不错的,现在就分享给大家,也给大家做个参考。 1、渐变色彩  CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial)。由于不同的渲染引擎实现渐变的语法不同,这里我们只针对线性渐变的 W3C 标准…

    2025年12月24日 好文分享
    000
  • 关于css多行文本溢出时出现省略号的内容

    这篇文章主要介绍了css多行文本溢出时出现省略号的示例的相关资料,内容挺不错的,现在分享给大家,也给大家做个参考。 多行文本溢出时出现省略号 本文推荐2种方法。 1. css tip:只兼容chrome内核的浏览器。ff不支持。 立即学习“前端免费学习笔记(深入)”; .box { overflow…

    好文分享 2025年12月24日
    000
  • CSS3字体与文本效果的示例代码分享

    CSS3允许我们使用自定义字体  也多了一些不错的文本效果 自定义字体 使用自定义字体需要使用@font-face规则 当然首先你要有自定义文字文件 Payen S.Tsung @font-face { font-family: myDIYfont; /*自定义字体名*/ src: url(‘Gin…

    2025年12月23日 好文分享
    100
  • 如何查看编写的html_查看自己编写的HTML文件效果【效果】

    要查看HTML文件的浏览器渲染效果,需确保文件以.html为扩展名保存、用浏览器直接打开、利用开发者工具调试、必要时启用本地HTTP服务器、或使用编辑器实时预览插件。 如果您编写了HTML代码,但无法直观看到其在浏览器中的实际渲染效果,则可能是由于文件未正确保存、未使用浏览器打开或文件扩展名设置错误…

    2025年12月23日
    400
  • html5怎么设置黑体_html5用CSS font-family设黑体或font-weight加粗【设置】

    在HTML5中实现黑体及加粗需用CSS的font-family和font-weight:一、font-family按优先级列“SimHei”,“Microsoft YaHei”,“Heiti SC”,sans-serif;二、font-weight用700或bold;三、组合声明并注意继承;四、可用…

    2025年12月23日
    000
  • navigator怎么用html5_HTML5用navigator对象查浏览器信息如语言【对象】

    可通过navigator对象获取浏览器语言、设备类型、平台信息、地理定位和媒体设备支持:navigator.language/languages返回语言代码;userAgent判断移动设备;platform返回操作系统;geolocation检测定位支持;mediaDevices检查媒体访问能力。 …

    2025年12月23日
    000
  • html5怎么找颜色_html5用取色器或CSS命名如red快速找对应颜色【查找】

    可通过浏览器开发者工具取色、CSS命名颜色对照表、在线十六进制颜色查找工具及CSS自定义属性验证四种方法快速定位颜色值对应的实际色彩效果。 如果您在HTML5开发中需要快速定位某个颜色值对应的实际色彩效果,可以通过取色器工具或CSS预定义颜色名称来识别。以下是查找颜色的具体操作方法: 一、使用浏览器…

    2025年12月23日
    000
  • html5如何清除缓存_HTML5缓存清除步骤与清理浏览器缓存方法【教程】

    HTML5网页应用异常通常由浏览器缓存旧资源导致,需依次清除常规缓存、强制刷新、清理AppCache、注销Service Worker并清空其缓存、或用无痕模式验证。 如果您在使用HTML5网页应用时遇到内容未更新、页面显示异常或资源加载错误等问题,可能是由于浏览器缓存了旧版本的HTML、CSS、J…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信