当前位置: 首页 > news >正文

正则表达式---元字符

简介

正则表达式分为两种语法:POSIX标准的语法Perl语法

正则表达式的POSIX规范,分为基本型正则表达式(Basic Regular Expression, BRE)扩展型正则表达式(Extended Regular Expression,ERE) 和SRE(Simple Regular Expression)已经被弃用(deprecated,因为BRE和SRE都可以backward compatibility)。

grepvised都属于BRE,元字符(metacharacter)需要转译(例如:在BRE中(){}需要指定为\(\)\{\}才可以使用,但是在ERE中则不需要进行转译)

egrepawk属于ERE,元字符不需要转译

一个正则表达式通常称为一个模式(pattern)。

HINT! Perl语法被广泛使用!在grep中使用Perl语构的regex:grep -P

Basic concepts

1. Boolean “or”

|

2. Grouping

()

3. Quantification

+

?

*

{n}

{min,}

{,max}

{min,max}

4. Wildcard

.

PCRE(Perl Compatible Regular Expression)

Perl兼容正则表达式,元字符介绍

MetacharacterDescriptionExample
\将下一个字符标记为一个特殊字符(File Format Escape)或一个原义字符(Identity Escape,有12个“^$()*+?.[\{”)等。n”字符匹配n字符,“\n”匹配一个换行符。
"\\“匹配一个“\
\("匹配一个“(
^匹配以某个字符串开始的行^abc
匹配abc
不匹配eabc
$匹配以某个字符串结束的行abc$
匹配ef abc
不匹配abc ef
*匹配前面的子表达式0次或多次
+匹配前面的子表示1次或多次
?匹配前面的子表示0次或1
{n}匹配no{2}
可以匹配到food中的两个o
不能匹配到Bob中的一个o
{n,}至少匹配n次
{n,m}匹配最少n次,最多m
?非贪心量化(Non-greedy quantifiers)。
其跟随在其他重复修饰符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。
.匹配除"\r""\n"之外的任何单个字符
(pattern)捕获组(capturing group)。
匹配pattern,并获取这一匹配的子字符串。该子字符串用于后向引用。
(\(\w+\))\s\1
匹配(hello) (hello) world中的(hello) (hello)
(?:pattern)非捕获组(non-capturing group)。
匹配pattern,不获取这一匹配的子字符串,非获取匹配。即不存储匹配的子字符串用于后向引用
(?=pattern)正向肯定预查(look ahead positive assert)。
在匹配pattern处,开始匹配查找字符串,这是一个非捕获匹配。
Windows(?=95|98|NT|2000)
匹配Windows2000中的Windows
不匹配Windows3.1中的Windows
(?!pattern)正向否定预查(negative assert)。
在不匹配pattern处查找匹配字符串。
industr(?!y)
匹配industries
不匹配industry
(?<=pattern)反向(look behind)肯定预查。
与正向肯定预查相似,只是方向相反。
非捕获匹配。
(?<=95|98|NT|2000)Windows
能匹配到2000Windows中的Windows
不能匹配到Windows2000中的Windows
(?<!pattern)反向否定预查。
与正向否定预查相似,只是方向相反
(?<!95|98|NT|2000)Windowsbr/>能匹配到3.1Windows
不能匹配到2000Windows
x|y没有包围在()里,范围是整个正则表达式
[xyz]字符集合(character class)。匹配包含的任意一个字符。[abc]
可以匹配plain中的a
可以匹配到branch中的"b" “a” “c
[^xyz]排除型字符集合(negated character classes)。匹配未列出的任意字符
[a-z]字符范围。可以匹配到不在“a”到“z”范围内的任意字符
[^a-z]
\d匹配一个数字字符。等价于[0-9]
\D匹配一个非数字字符。等价于[^0-9]
\s匹配任何空白字符,包括空格,制表符,换页符等。等价于[\f\n\r\t\v]
\S匹配任何空白字符。等价于[^\f\n\r\t\v]
\w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9]
\W匹配包括下划线的任何单词字符。等价于“[^A-Za-z0-9]

Reference

维基百科:正则表达式

相关文章:

正则表达式---元字符

简介 正则表达式分为两种语法&#xff1a;POSIX标准的语法&#xff0c;Perl语法。 正则表达式的POSIX规范&#xff0c;分为基本型正则表达式&#xff08;Basic Regular Expression, BRE&#xff09;&#xff0c;扩展型正则表达式&#xff08;Extended Regular Expression&…...

数据库Redis篇

系列文章目录 第一章 C/C语言篇第二章 计算机网络篇第三章 操作系统篇第四章 数据库MySQL篇第五章 数据库Redis篇第六章 场景题/算法题第七篇 常见HR问题篇 本系列专栏&#xff1a;点击进入 后端开发面经 关注走一波 秋招阶段&#xff0c;面过很多大中小厂&#xff0c;积攒了…...

在区块链技术中,什么是权益证明(PoS)?

权益证明&#xff08;Proof of Stake, PoS&#xff09;是一种与工作量证明&#xff08;Proof of Work, PoW&#xff09;类似的共识机制&#xff0c;但它通过不同的方式来确保区块链网络的安全性和一致性。PoS的主要目标是解决PoW中存在的高能耗问题&#xff0c;并提高网络的扩展…...

Spring Boot——日志介绍和配置

1. 日志的介绍 在前面的学习中&#xff0c;控制台上打印出来的一大堆内容就是日志&#xff0c;可以帮助我们发现问题&#xff0c;分析问题&#xff0c;定位问题&#xff0c;除此之外&#xff0c;日志还可以进行系统的监控&#xff0c;数据采集等 2. 日志的使用 在程序中获取日…...

Python实现全国岗位招聘信息可视化分析(源码+论文+部署讲解)

项目源码&数据源获取 利用Python实现全国岗位招聘信息可视化分析 项目背景&#xff1a; 1.为企业招聘决策提供科学的依据和参考&#xff0c;可以帮助人力资源部门、招聘机构和求职者了解当前的就业形势、行业趋势和人才需求&#xff0c;从而做出更明智的招聘和求职决策。…...

【真题笔记】16年系统架构设计师要点总结

【真题笔记】16年系统架构设计师要点总结 存储部件接口嵌入式处理器产品配置配置管理用户文档系统文档CMM&#xff08;能力成熟度模型&#xff09;螺旋模型敏捷软件开发的方法学软件工具面向对象的分析模型设计模型COP&#xff08;面向构件的编程&#xff09;构件原子构件模块S…...

2024 CSS保姆级教程二 - BFC详解

前言 - CSS中的文档流 在介绍BFC之前&#xff0c;需要先给大家介绍一下文档流。​ 我们常说的文档流其实分为定位流、浮动流、普通流三种。​ ​ 1. 绝对定位(Absolute positioning)​ 如果元素的属性 position 为 absolute 或 fixed&#xff0c;它就是一个绝对定位元素。​ 在…...

Knowledge-refined Denoising Network for Robust Recommendation

Knowledge-refined Denoising Network for Robust Recommendation&#xff08;Sigir23&#xff09; 摘要 知识图&#xff08;KG&#xff09;包含丰富的边信息&#xff0c;是提高推荐性能和可解释性的重要组成部分。然而&#xff0c;现有的知识感知推荐方法直接在KG和用户-项目…...

轴流风机和后倾式风机的安装要求

后向离心风机风压大&#xff0c;风量足&#xff0c;安装方便。因为不需要蜗壳&#xff0c;所以风道往往需要自行设计&#xff0c;而风道的合理与否&#xff0c;大大影响了后向离心风机的效率。那么后向离心风机的安装技巧有哪些&#xff1f;怎样达到风机的最佳使用效果呢&#…...

代码笔录1

10-16 出入栈序列是否合法 // // Created by 86184 on 2024/10/16. // #include <stdio.h>//IIOOOIO int jude(char s[]) {int count 0, i 0;while (s[i] ! \0) {if (s[i] I) count;else if (s[i] O) count--;else return 0;if (count < 0) return 0;i;}if (cou…...

强网杯2024 Web WP

强网杯2024 参考链接&#xff1a;https://mp.weixin.qq.com/s/Mfmg7UsL4i9xbm3V3e5HMA https://mp.weixin.qq.com/s/vV_II8TpyaGL4HUlUS57RQ PyBlockly 源码&#xff1a; from flask import Flask, request, jsonify import re import unidecode import string import ast …...

《双指针篇》---盛最多水的容器_Java(中等但简单)

题目传送门 1.首先计算出暂时的盛水体积 2.求暂时体积和最大体积max的最大值 3.更新right和left。如果height[left] > height[right] 那么right--否则left; class Solution {public int maxArea(int[] height) {int left 0,right height.length-1; int ret 0;while (lef…...

Linux: network: 环境:网络burst的一个原因,虚拟机感染病毒导致,外部网络设备太忙

最近碰到一个问题&#xff0c;测试人员在测试一周内的产品稳定性&#xff0c;带有的业务非常大。 总是不能满足需要的时长&#xff0c;总是在一段时间内出现丢包&#xff0c;业务出现错误的现象。从tshark/tcpdump的抓包看&#xff0c;确实在某个时间段&#xff0c;有一次十几秒…...

idea使用Translation插件实现翻译

1.打开idea&#xff0c;settings&#xff0c;选择plugins&#xff0c;搜索插件Translation&#xff0c;安装 2.选择翻译引擎 3.配置引擎&#xff0c;以有道词典为例 3.1 获取应用ID&#xff0c;应用秘钥 3.1.1 创建应用 点击进入有道智云控制台 3.1.2 复制ID和秘钥 3.2 idea设…...

[OS] sys_mmap() 函数+

流程图分析 1. 调用 sys_mmap() 步骤&#xff1a;当用户程序调用 mmap() 时&#xff0c;操作系统会进入 sys_mmap() 函数。作用&#xff1a;这是整个 mmap() 操作的入口。系统调用的实现从这里开始。 2. 提取参数&#xff08;Fetch Argument&#xff09; 步骤&#xff1a;从…...

轧钢机辊道多电动机传动控制系统

轧钢机辊道多电动机传动控制系统是一种复杂的工业自动化系统&#xff0c;主要用于控制轧钢车间中多个电动机驱动的辊道&#xff0c;以实现轧件的高效、稳定输送和加工。以下是对该系统的详细介绍&#xff1a; 系统组成 轧线辊道TDC控制器&#xff1a;作为系统的核心控制单元&a…...

使用 Nginx 部署 Python 项目

今天的目标是完成一个 Python Web 项目的线上部署&#xff0c;我们使用最新的 Django 项目搭建一个简易的 Web 工程&#xff0c;然后基于 Nginx 服务部署该 Python Web 项目。 1. 前期准备 1.1 安装虚拟环境pyenv 使用虚拟环境逐渐成了 python 项目开发中的一种主流方式。py…...

[笔记] SQL 优化

一. 数据库设计优化 1. 选择合适的字段类型 设计表时&#xff0c;尽量选择存储空间小的字段类型&#xff1a; 整型字段&#xff1a;从TINYINT、SMALLINT、INT到BIGINT。小数类型&#xff1a;对于金额等需精确计算的数值使用DECIMAL&#xff0c;避免使用FLOAT和DOUBLE。字符串…...

【InfluxDB】InfluxDB 2.x基础概念及原理

InfluxDB简介 什么是时序数据库 时序数据库&#xff0c;全称时间序列数据库&#xff08;Time Series Database&#xff0c;TSDB&#xff09;&#xff0c;用于存储大量基于时间的数据。时序数据库支持时序数据的快速写入、持久化&#xff0c;多维度查询、聚合等操作&#xff0…...

.net Core 使用Panda.DynamicWebApi动态构造路由

我们以前是通过创建controller来创建API&#xff0c;通过controller来显示的生成路由&#xff0c;这里我们讲解下如何不通过controller&#xff0c;构造API路由 安装 Panda.DynamicWebApi 1.2.2 1.2.2 Swashbuckle.AspNetCore 6.2.3 6.2.3添加ServiceAction…...

ComfyUI扩展生态系统的智能管家:ComfyUI-Manager全面解析

ComfyUI扩展生态系统的智能管家&#xff1a;ComfyUI-Manager全面解析 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various cu…...

如何永久保存微信聊天记录?WeChatMsg数据管理工具完全指南

如何永久保存微信聊天记录&#xff1f;WeChatMsg数据管理工具完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

工业级SCADA革命:FUXA零代码可视化平台如何重塑工业监控决策

工业级SCADA革命&#xff1a;FUXA零代码可视化平台如何重塑工业监控决策 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA 在工业4.0和数字化转型浪潮中&#xff0c;传统SCADA…...

Mapbox Studio Classic核心功能解析:CartoCSS与矢量瓦片技术详解

Mapbox Studio Classic核心功能解析&#xff1a;CartoCSS与矢量瓦片技术详解 【免费下载链接】mapbox-studio-classic 项目地址: https://gitcode.com/gh_mirrors/ma/mapbox-studio-classic Mapbox Studio Classic是一款强大的桌面地图设计工具&#xff0c;专为创建专业…...

技术人如何建立“学习飞轮”?让每次学习都推动下一次

在软件行业&#xff0c;有一种普遍的焦虑叫做“测试工程师的35岁危机”。这种焦虑的根源&#xff0c;往往不是年龄本身&#xff0c;而是能力栈的停滞——你是在用十年的经验做重复的事&#xff0c;还是真正拥有了十年的成长&#xff1f;同样是功能测试的起点&#xff0c;有人三…...

别再手算公式了!用MathCAD Prime 5.0搞定工程计算,附保姆级安装与破解避坑指南

MathCAD Prime 5.0工程计算革命&#xff1a;从公式恐惧到高效验证的全流程实战 记得三年前我刚接手第一个桥梁应力分析项目时&#xff0c;整整两周都泡在Excel公式和手写计算稿里。某个深夜&#xff0c;当我发现第17次计算结果的单位换算出现致命错误时&#xff0c;崩溃得差点把…...

VLC for Unity:工业级高性能视频渲染替代方案

1. 这不是“又一个视频插件”——VLC for Unity 解决的是 Unity 视频管线里最顽固的硬伤 你有没有在 Unity 项目里&#xff0c;把一段 4K H.265 的监控流拖进 VideoPlayer 组件&#xff0c;结果帧率直接掉到 8 FPS&#xff0c;GPU 占用飙到 95%&#xff0c;而 CPU 却只用了 30%…...

QGroundControl终极指南:5步掌握开源无人机地面站完整使用教程

QGroundControl终极指南&#xff1a;5步掌握开源无人机地面站完整使用教程 【免费下载链接】qgroundcontrol Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows) 项目地址: https://gitcode.com/gh_mirrors/qg/qgroundcontrol 想…...

3秒解锁微博图片溯源能力:重新定义你的信息追踪体验

3秒解锁微博图片溯源能力&#xff1a;重新定义你的信息追踪体验 【免费下载链接】WeiboImageReverse Chrome 插件&#xff0c;反查微博图片po主 项目地址: https://gitcode.com/gh_mirrors/we/WeiboImageReverse 当你在微博上看到一张惊艳的摄影作品&#xff0c;想要了解…...

元学习与物理信息神经网络:破解数据稀缺下的宏观交通流估计难题

1. 项目概述&#xff1a;当宏观交通流遇上“学会学习”的AI如果你在交通工程或智慧城市领域待过几年&#xff0c;肯定对“宏观基本图”这个概念不陌生。简单来说&#xff0c;它就像一张城市路网的“心电图”&#xff0c;通过聚合整个区域的交通流量和密度&#xff0c;描绘出网络…...