正则表达式

一、正则表达式实例

匹配特殊字符匹配

空格(空白字符) & 任意非空格(任意非空白字符)

s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ f v]
s 匹配任何非空白字符。等价于[^ f v]

换行符

表达式:

数字

表达式:

行起始与结束

^x处于一行开头位置的某字符
x$处于一行结尾位置的某字符
^x.*以x开头的一整行
x$以x结束的一整行


Ref:正则表达式 - 语法


匹配两个特殊字符中间的内容

https://www.cnblogs.com/exmyth/p/8796954.html

匹配两个字符串A与B中间的字符串包含A与B:

表达式: A.*?B

(“.“表示任意字符,“?”表示匹配0个或多个)

示例: Abaidu.comB

结果: Awww.apizl.comB

匹配两个字符串A与B中间的字符串包含A但是不包含B:

表达式: A.*?(?=B)

示例: Awww.apizl.comB

结果: Awww.apizl.com

匹配两个字符串A与B中间的字符串且不包含A与B:

表达式: (?<=A).*?(?=B)

(?<=要匹配的开始字符),不包含后面要匹配的字符写法(?=要匹配的结束字符)

示例: Awww.baidu.comB

结果: www.baidu.com

匹配以“http”开头的整行字符串

表达式: ^http.*$

匹配任意含http的整行

^.*http.*$

匹配以以//或若干空格+//开头的整行

表达式: ^s*//.*

s* 表示若干个空格(可以是0个)。

s+ 表示一个或多个空格

删除空行

表达式: ^[ ]*

替换类容保持为空,表示删除查找到的内容

Others

write(0x10900000, 0x0100, 0x123);

表达式: \,s0x[0-9]{1,8}) -> )

效果就变成了write(0x10900000, 0x0100);


write(0x10900000, 0x0100, 0x1A23);

表达式: \,s0x.{1,8}) -> )

效果就变成了write(0x10900000, 0x0100);


二、通配符

通配符是一种特殊语句(可以认为是正则表达式的阉割版),主要有星号(*)和问号(?),用来模糊搜索文件

星号(*):代替零个、单个或多个字符

如正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。

问号(?):代替一个字符

如输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。

原文地址:https://www.cnblogs.com/lyh523329053/p/11335671.html