通配符和正则表达式

单晶塑性abaqus-umat自学 单晶塑性abaqus-umat 摘要1. 简介2. 单晶弹塑性本构模型回顾2.1运动学 本文以翻译黄永刚老师的umat文章为主,这个颜色的为个人的理解。 摘要 包含单晶塑性的abaqus用户材料子程序。本文回顾有限元形式的单晶弹塑性和黏弹塑性,包含小变形理论,以及严格的有限变形和有限旋转理论。单晶的非弹性变形由于晶体滑移,假定遵从Schmid准则。提出多种多样的分切应力与剪切变形的自硬化和潜硬化关系,并且包含在子程序内。 1. 简介   有限元程序ABAQUS已经广泛应用在固体的变形与应力分析。除了自身大量 阅读详情

通配符和正则表达式

通配符

通配符是用来匹配文件名的(最起码linux系统中是这样的)。

通配符作用
?匹配一个任意字符
*匹配0个或任意多个任意字符,也就是可以匹配任何内容
[ ]匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。
[-]匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母。
[^]逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符。

正则表达式与通配符的区别

正则表达式用来在文件中匹配符合条件的字符串,正则是==包含匹配==。++grep、awk、sed等命令可以支持正则表达式++。

如以下是列出wifi-1H55A4.log中所有包含字符串CACHE的行

➜  /tmp grep CACHE  wifi-1H55A4.log -n
13:Sun Jun 18 00:58:35.319 Info: <airportd[62]> QUERY SCAN CACHE request received from pid 62 (airportd)
14:Sun Jun 18 00:58:35.335 Info: <airportd[62]> QUERY SCAN CACHE request received from pid 62 (airportd)
17:Sun Jun 18 00:58:35.421 Driver Event: <airportd[62]> _bsd_80211_event_callback: SCAN_CACHE_UPDATED (en0)
26:Sun Jun 18 00:58:35.426 Info: <airportd[62]> QUERY SCAN CACHE request received from pid 85 (locationd)

通配符用来匹配符合条件的文件名,通配符是==完全匹配==。++ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。++

基础正则表达式

元字符作用
*前一个字符匹配0次或任意多次。
.匹配除了换行符外任意一个字符。范例:搜寻的字符串可以是 (eve)(eae)(eee) (e e), 但不能仅有 (ee)!亦即e与e中间『一定』仅有一个字符,而空格符也是字符! grep -n ‘e.e’ regular_express.txt
^匹配行首。例如:^hello会匹配以hello开头的行。
$匹配行尾。例如:hello&会匹配以hello结尾的行。
[]匹配中括号中指定的任意一个字符,只匹配一个字符。 例如:[aoeiu] 匹配任意一个元音字母,[0-9] 匹配任意一位数字, [a-z][0-9]匹配小写字和一位数字构成的两位字符。
[^]匹配除中括号的字符以外的任意一个字符。例如:[\^0-9]匹配任意一位非数字字符,[\^a-z] 表示任意一位非小写字母。
\转义符。用于取消讲特殊符号的含义取消。范例:搜寻吨有单引号 ‘的那一行! grep -n \’ regular_express.txt
\{n\}表示其前面的字符恰好出现n次。例如:[0-9]\{4\} 匹配4位数字,[1][3-8][0-9]\{9\} 匹配手机号码。
\{n,\}表示其前面的字符出现不小于n次。例如: [0-9]\{2,\} 表示两位及以上的数字。
\{n,m\}表示其前面的字符至少出现n次,最多出现m次。例如: [a-z]\{6,8\} 匹配6到8位的小写字母。

“*”前一个字符匹配0次,或任意多次

grep "a*" test_rule.txt      #匹配所有内容,包括空白行
grep "aa*" test_rule.txt     #匹配至少包含有一个a的行
grep "aaa*" test_rule.txt    #匹配最少包含两个连续a的字符串
grep "aaaaa*" test_rule.txt  #则会匹配最少包含四个个连续a的字符串

“.” 匹配除了换行符外任意一个字符

grep "s..d" test_rule.txt    #“s..d”会匹配在s和d这两个字母之间一定有两个字符的单词
grep "s.*d" test_rule.txt    #匹配在s和d字母之间有任意字符
grep ".*" test_rule.txt      #匹配所有内容

“^”匹配行首,“$”匹配行尾

grep "^M" test_rule.txt    #匹配以大写“M”开头的行
grep "n$" test_rule.txt    #匹配以小写“n”结尾的行
grep -n "^$" test_rule.txt #会匹配空白行

“[]”匹配中括号中指定的任意一个字符,只匹配一个字符

grep "s[ao]id" test_rule.txt #匹配s和i字母中,要不是a、要不是o 
grep "[0-9]" test_rule.txt   #匹配任意一个数字
grep "^[a-z]" test_rule.txt  #匹配用小写字母开头的行

“[^]”匹配除中括号的字符以外的任意一个字符

grep "^[^a-z]" test_rule.txt    #匹配不用小写字母开头的行
grep "^[^a-zA-Z]" test_rule.txt #匹配不用字母开头的行

“\” 转义符

grep "\.$" test_rule.txt  #匹配使用“.”结尾的行

“\{n\}”表示其前面的字符恰好出现n次

grep "a\{3\}" test_rule.txt      #匹配a字母连续出现三次的字符串
grep "[0-9]\{3\}" test_rule.txt  #匹配包含连续的三个数字的字符串

“\{n,\}”表示其前面的字符出现不小于n次

grep "^[0-9]\{3,\}[a-z]" test_rule.txt    #匹配最少用连续三个数字开头的行

“\{n,m\}”匹配其前面的字符至少出现n次,最多出现m次

grep "sa\{1,3\}i" test_rule.txt    #匹配在字母s和字母i之间有最少一个a,最多三个a

反向选择

grep -vn 'the' regular_express.txt

匹配”oo”,但不想要oo前面有g

grep -n '[^g]oo' regular_express.txt

行尾结束为小数点 (.)
因为‘.’有特殊含义(匹配除了换行符外任意一个字符),所以要用转义符‘\’

grep -n '\.$' regular_express.txt

不要空白行和#开头的行

grep -v '^$' regular_express.txt | grep -v '^#'

完全匹配uuid

grep -n '^[[:alnum:]]\{8\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{4\}-[[:alnum:]]\{12\}$' uuid.txt

nodejs语言中,还支持(){n}来匹配{}中的内容重复n次 .
注:不是\{n\}

[patrickxu@vm1 tmp]$ node
>  /^[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}$/.test("8f70f6c8-55a2-11e7-8ccd-5254a0000001")
true
> /^[a-zA-Z0-9]{8}(-[a-zA-Z0-9]{4}){3}-[a-zA-Z0-9]{12}$/.test("8f70f6c8-55a2-11e7-8ccd-5254a0000001")
true

特殊符号

注:并不是每种语言都支持。如js就不支持特殊符号。

特殊符号代表意义
[:alnum:]代表英文大小写字符及数字,亦卲 0-9, A-Z, a-z
[:alpha:]代表任何英文大小写字符,亦卲 A-Z, a-z
[:blank:]代表穸格键不 [Tab] 按键两者
[:cntrl:]代表键盘上面癿控制按键,亦卲包括 CR, LF, Tab, Del.. 等等
[:digit:]代表数字而已,亦卲 0-9
[:graph:]除了空格符 (空格键与[Tab]按键) 外癿其他所有按键
[:lower:]代表小写字符,亦即a-z
[:print:]代表任何可以被打印出来的字符
[:punct:]代表标点符号 (punctuation symbol),亦即:” ’ ? ! ; : # $…
[:upper:]代表大写字符,亦即A-Z
[:space:]任何会产生空白的字符,包括空格键, [Tab], CR 等等
[:xdigit:]代表16进位的数字类型,因此包括: 0-9, A-F, a-f的数字与字符

匹配开头是小写字符的行

grep -n '^[a-z]' regular_express.txt
grep -n '^[[:lower:]]' regular_express.txt

匹配开头不是英文字母的行

grep -n '^[^a-zA-Z]' regular_express.txt
grep -n '^[^[:alpha:]]' regular_express.txt

扩展正则表达式

我们要去除空白行与行首为不为#的行列,使用的是

grep -v '^$' regular_express.txt | grep -v '^#'

使用扩展正则表达式,可以简化为

egrep -v '^$|^#' regular_express.txt
grep -E -v '^$|^#' xx.sh

这里列出几个特殊扩展符号:
1 +: 重复一个或一个以上的前一个RE字符。范例:搜寻 (god) (good) (goood)… 等等的字符串。 那个 o+代表『一个以上的 o 』。

egrep -n 'go+d' regular_express.txt

2 ?:『零个或一个』的前一个RE字符。 那个 o? 代表『空的或1个o』

egrep -n 'go+d' regular_express.txt

3 | : 用或( or )的方式找出数个字符串。 如搜索包含 gd 或 good 或 dog 的行

egrep -n 'gd|good|dog' regular_express.txt

4 (): 找出『群组』字符串。 范例:搜寻(glad)或(good) 这两个字符串,因为g与d 是重复的,所以, 我就可以将la 与oo列于 ( ) 当中,并以|来分隔开来,就可以啦!

egrep -n 'g(la|oo)d' regular_express.txt

5 ()+: 多个重复群组的判别 范例:将『AxyzxyzxyzxyzC』用 echo 叫出,然后再使用如下的方法搜寻一下!

echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'  

上面的例子意思是说,我要找开头是A结尾是C ,中间有一个以上的”xyz” 字符串

uniapp [安卓苹果App端] - errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002)Uniapp真机运行APP网络请求报错失败排查 uniapp真机运行APP,网络请求报错errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002),uni.request网路请求报错,uniApp解决请求接口报错,uniapp app端打包上线后请求报错,真机运行测试请求失败,uniapp安卓app请求报错,uniapp苹果ios平台网络请求报错,uniapp真机预览请求失败怎么办,不是跨域问题,在H5中请求可以正常发送和接收,但在真机APP上请求报错,Hbuilder真机运行app网络请求报错,全 阅读详情

相关推荐

Unity 接入 Steam 平台

Unity 接入 steam sdk 的登录和应用内购买功能

MarinaTsang的博客 3903

正则表达式常用通配符

(1)'^'匹配以该字符后面的字符开头的字符串(2)'$'匹配以该字符后面的字符结尾的字符串(3)'.'匹配任何一个单字符(4)'[...]'匹配在方括号内的任何字符。例如,“[abc]" 匹配a、b或c。字符的范围可以使用一个'-',“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字(5)'*' 匹配零个或多个在他前面的字符。例如,“x*”匹配任何数量的'*'字符,“[0-9]*”匹配任何...

StarryDream 4559

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 196

通配符与正则表达式

Shell中的通配符。 正则表达式。 通配符用来匹配文件名,正则表达式用来匹配文本。

枸杞桑葚菊花茶的博客 2202

手把手教你用WF100DPZ数字压力传感器搞定I2C/SPI通信(附完整寄存器解析)

本文详细解析了WF100DPZ数字压力传感器的I2C与SPI通信驱动方法,涵盖硬件连接、寄存器配置、数据读取流程及常见问题排查。该传感器内置24位ADC和出厂校准,通过实战代码演示了如何稳定获取高精度压力与温度数据,帮助开发者快速集成到嵌入式项目中。

weixin_28285943的博客 376

SPI 协议帧格式深度解析:从 8 位数据到 16 位扩展的 3 种模式

本文深入解析SPI协议的帧格式,涵盖从8位标准到16位扩展的三种模式。通过详细讲解SPI时钟模式、数据宽度配置及实际应用案例,帮助开发者掌握SPI外设的深度定制能力,提升嵌入式系统开发效率。特别适用于连接传感器、存储器和显示器等高速通讯场景。

weixin_34110749的博客 345

正则表达式与通配符

【代码】正则表达式与通配符。

HCIE 数通、RHCE、HCIP 欧拉、MySQL OCP 持证工程师。 1731

别再只会regress了!用Stata的csdid命令搞定多期DID的完整实操指南

本文详细介绍了如何在Stata中使用csdid命令进行多期DID分析,解决传统DID方法在交错处理场景下的局限性。通过完整的实操指南,包括环境搭建、核心语法、结果解读和高阶应用,帮助研究者更准确地评估政策效果,适用于计量经济学和实证研究领域。

weixin_30236595的博客 582

正则表达式和通配符

正则表达式和通配符

hgz2020的博客 1564

OpenClaw Browser Relay Extension 鉴权失败与 invalid handshake 问题的终极解决方案

在使用 OpenClaw 浏览器插件 (Browser Relay Extension) 时,许多用户可能会遇到两个主要问题:一是配置端口错误导致的连接失败,二是鉴权失败 (Gateway token rejected)。本文将详细解析这两个问题并提供解决方案。

gerryke的blog 5559

USB通讯速度翻倍秘诀:手把手教你用WinUsb替代HID协议(附Zadig驱动配置图解)

本文详细介绍了如何通过WinUsb技术替代传统HID协议,实现USB通讯速度的显著提升。从技术对比、实现原理到Zadig驱动配置图解,手把手教你完成免驱高速通讯方案,适用于数据采集、固件升级等场景,实测速度可达HID协议的2倍以上。

weixin_29168675的博客 133

linux通配符和正则表达式

平时工作中我们对linux下的通配符和正则表达式模糊不清,本文详细对二者进行了说明和比较,最后详细说明了grep的强大功能(该部分纯粹copy)

2万+

GEO的工作原理,以及GEO会催生出更多的爬虫岗位吗?

摘要: GEO(生成式引擎优化)是提升内容在AI搜索(如ChatGPT、Perplexity等)中引用率的新策略,核心在于优化内容的可抓取性、语义清晰度、权威性。与传统SEO不同,GEO聚焦AI的引用逻辑,需通过爬虫监控AI回答、逆向分析引用源特征(如结构化数据、权威背书),并构建自动化工具优化内容。爬虫工程师需转型为“AI可见性基础设施构建者”,重点关注高权威站点、知识库及官方信息源,同时确保技术可抓取性(如放行AI爬虫UA)。GEO的核心是从“排名”转向“被AI引用”,强调实体识别与动态对话适配。

数据知道的博客 4641

7. 通配符和正则表达式

匹配任意长度的字符,可以是 0 个?匹配任意单个字符,必须是1个[] 匹配指定的字符范围内的任意单个字符[a-z,A-Z,0-9] 匹配所有字母和数字,可以不加逗号[a-z] 匹配所有小写字母[A-Z] 匹配所有大写字母[A-z] 匹配所有大小写字母,等价于 [a-z,A-Z][:upper:] 匹配所有大写字母,等价于 [A-Z][:lower:] 匹配所有小写字母,等价于 [a-z][:alpha:] 匹配所有字母,等价于 [A-z]

搞运维的 1018

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux笔记之通配符和正则表达式的区别

1.Linux笔记之通配符和正则表达式的区别2.C++笔记之C语言中的换行符和转义符。

小勇博客 1447

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Shell基础之通配符和正则表达式

Shell基础之通配符和正则表达式

qq_64227183的博客 1448

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

十、通配符和正则表达式

在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符。而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前一个字符。对于通配符和正则表达式之间容易理解的方法就是,在文本过滤命令中这些元字符是用做正则表达式,比如像awk,sed,grep等,主要是针对文件内容的。然而通配符多用在文件名上,比如查找find,ls,cp,mv等等。没有特殊说明,正则表达式就是指基础正则表达式。

m2282475145的博客 1135

Shell通配符和正则表达式

简单介绍了shell里的通配符和正则表达式

Jill1179457809的博客 730

linux 通配符 正则表达式 区别,linux 正则表达式和通配符

linux 正则表达式和通配符通配符用于查找文件包含三种: * ? []* 代表任意个任意字符? 代表任意一个字符[] 代表中括号中的一个字符正则表达式(正则是包含匹配,只要包含就可以匹配上,比如[0-9]可以匹配"7dfssf")* a*表示0到n个a,这个表达没有任何含义,和 .* 意义相同. 匹配任意一个字符 s..d 表示s和d中间含有两个任意字符的字符串^$ 会匹配空白行[] 与通配符...

weixin_42577735的博客 1121

linux正则表达式和通配符,shell中的正则表达式和通配符

shell中的正则表达式和通配符正则表达式正则表达式包含以下一个或多个组成部分字符集:一组字符锚:表领了正则表达式在文本中要匹配的位置。例如^和$修饰符:用于展开或者缩小正则表达式匹配文本行的范围。例如*,(),\。正则表达式主要的内容星号*匹配前一个字符任意多次(含0)。例如:“123*”表示匹配12+任意多次的3点.匹配除了换行以外的任意一个字符例如:“12.”会匹配12+任意一个字符(包括空...

weixin_39653733的博客 168

正则表达式和通配符简介

通配符和正则表达式 1.通配符(wild-card pattern)一般是用于匹配文件名,它是由shell解析的,一般用于find(文件搜索)、ls(目录)、cp(复制)、mv(移动)等。 shell常见的通配符有 * 0或多个字符 ? 匹配任意一个字符 ~ 当前用户家目录 ~+当前工作目录 ~-前一个工作目录 [list]匹配list中的任意一个单一字符 [^list]匹配除li...

bimie1383的博客 356

Linux通配符和正则表达式

Linux通配符和正则表达式 Linux通配符和正则表达式是不一样的,通配符一般用于用户命令行bash环境,而正则表达式用于三剑客匹配 1、通配符知识:一般用户命令行bash环境,注意区别正则表达式中的含义 * --代表所有(0个或多个)字符 如:*.sh 匹配所有以 .sh 结尾的文件 ? --任意一个字符 ; --连续不同命令的分隔符 # --配置文件的注释 | --管道符 ~ --当...

weixin_42067873的博客 686

正则表达式和通配符的区别(转)

正则表达式和通配符的区别(转) Explain 1: 1、正则表达式是用来匹配字符串的,这个就不解释了 2、通配符是用来通配的,也就是shell在做Pathname Expansion时用到的 Explain 2: 通配符,说白了一般只用于文件名匹配, 它是由shell解析的。所谓的系统level的概念非常含糊,什么是系统level的?我们知道shell是一个命令解释器,它是内核的外壳,用于完成 操作系统使用者与内核的沟通,因此,通配符实际上就是一个shell解释器去解析的符号,它的特殊涵义是由shell

weixin_44443938的博客 1534
上一篇: 使用iostat分析IO性能
下一篇: 查看windows机器的cpu信息
森几许
博客等级 码龄18年 13粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值