政治表达式(全部基本知识)

原创
小哥 3年前 (2022-10-29) 阅读数 110 #大杂烩

正则表达式(Regular Expression,简写:regex、regexp或RE)

1.简要说明:
1正则表达式是字符串对(包括普通字符(例如,a 到 z字母之间)和特殊字符(称为“元字符”)进行运算的逻辑公式;
2,具有预定义数量的特定字符,并将这些特定字符组合在一起,形成一个“规则串”;
3此“规则字符串”用于表示字符串的过滤逻辑。
注意:正则表达式是一种文本模式,它描述了在搜索文本时要匹配的一个或多个字符串。
2.特点:
正则表达式可以对静态文本执行简单的搜索并将其替换为与预期搜索结果完全匹配的文本。
1数据验证:测试字符串中是否出现特定模式(如电话号码、信用卡号码)
2查询文本:根据模式匹配从字符串中提取子字符串,并查询文档或输入域中的特定文本。
3,替换文本:可以使用正则表达式来标识特定文本、完全删除文本或将其替换为其他文本。

元字符

描述

\

下一个字符标记、后向引用或八进制转义。例如,“\n”匹配\n。“\n“匹配线中断。序列”\”匹配“\”而“(“然后匹配”(也就是说,许多编程语言中的“转义字符”的概念。

^

匹配输入单词的第一行。如果已设置RegExp对象的Multiline属性,^也匹配“\n”或“\r他说:“在职位之后。

$

匹配输入行的末尾。如果已设置RegExp对象的Multiline属性,$也匹配“\n”或“\r“之前的立场。

*

随时匹配上一个子表达式。例如,zo能匹配“z,也可以匹配zo”以及“zoo”。等价于{0,}。

+

匹配上一个子表达式一次或多次。(大于等于1次数)。例如,“zo+“可以匹配”zo”以及“zoo,但无法匹配z”。+等价于{1,}。

?

匹配上一个子表达式零个或一时代周刊。例如,“do(es)?“可以匹配”do”或“does”。?等价于{0,1}。

{ n }

n 是一个非负整数。已确定匹配 n 时代周刊。例如,“o{2}“无法匹配”Bob”中的“o,但可以匹配food“其中两人o。

{ n ,}

n 是一个非负整数。至少匹配 n 时代周刊。例如,“o{2,}“无法匹配”Bob”中的“o,但可以匹配foooood“所有的o。“o{1,}“相当于”o+”。“o{0,}“相当于”o*”。

{ n , m }

mn 是非负整数,其中 n <= m 。最小匹配 n 次数和匹配次数最多 m 时代周刊。例如,“o{1,3}“将会匹配”fooooood中的前三个o对于一个小组来说,最后三个o对于一群人来说。o{0,1}“相当于”o?“。请注意,逗号和两个数字之间不能有空格。

?

当字符后面紧跟任何其他限制符时(*,+,?,{ n },{ n ,},{ n , m })之后,匹配的模式是非贪婪的。非贪婪模式匹配尽可能少的搜索字符串,而默认贪婪模式匹配尽可能多的搜索字符串。例如,对于字符串“oooo”,“o+“将尽可能地匹配”o“,得到结果。[“oooo”],而“o+?“将尽可能少地匹配”o“,得到结果。 [o, o, o, o]

.点

匹配除“\n”和"\r"除此之外的任何单个字符。匹配的内容包括“\n”和"\r"请使用任何字符,如“[\s\S]“时尚。

(pattern)

匹配pattern然后拿到这根火柴。所获得的匹配项可以从结果Matches设置获取,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配括号字符,请使用“(”或“)”。

(?:pattern)

未获得匹配,匹配pattern但是,不会获得匹配结果,也不会存储以供以后使用。这是在使用中或在字符中“(|)“在组合模式的各个部分时非常有用。例如”industr(?:y|ies)“是一个比率”industry|industries“一种简短的表达方式。

(?=pattern)

在任何比赛中,没有得到匹配,肯定的预先检查。pattern匹配字符串开头的查找字符串,该字符串不需要获取以供以后使用。例如,“Windows(?=95|98|NT|2000)“可以匹配”Windows2000”中的“Windows,但无法匹配Windows3.1”中的“Windows预检查不消耗字符,也就是说,在发生匹配之后,下一个匹配搜索紧跟在最后一个匹配之后开始,而不是从包含预检查的字符之后开始。

(?!pattern)

不匹配,正负预检查,在任何不匹配中。pattern匹配字符串开头的查找字符串,该字符串不需要获取以供以后使用。举个例子:“Windows(?!95|98|NT|2000)“可以匹配”Windows3.1”中的“Windows,但无法匹配Windows2000”中的“Windows”。

(?<=pattern)

非采集匹配,反向正向预检查,类似于正向正向预检查,但方向相反。例如,“(?<=95|98|NT|2000)Windows“可以匹配”2000Windows”中的“Windows,但无法匹配3.1Windows”中的“Windows”。

*python正则表达式不是根据正则表达式规范完全实现的,因此一些高级功能建议使用其他语言,如java、scala等

(?<!patte_n)

非收购匹配,反向负预检查,类似于正负预检查,但方向相反。举个例子:“(?<!95|98|NT|2000)Windows“可以匹配”3.1Windows”中的“Windows,但无法匹配2000Windows”中的“Windows”。

*python正则表达式不是根据正则表达式规范完全实现的,因此一些高级功能建议使用其他语言,如java、scala等

x|y

匹配x或y。例如,“z|food“可以匹配”z”或“food”(请您在这里小心。)。“[z|f]ood“然后匹配”zood”或“food”。

[xyz]

字符集。匹配所包含的任何一个性格。例如,“[abc]“可以匹配”plain”中的“a”。

[^xyz]

负值字符集。匹配不包括的任何性格。例如,“[^abc]“可以匹配”plain”中的“plin“任何角色。

[a-z]

字符范围。匹配指定范围内的任何性格。例如,“[a-z]“可以匹配”a”到“z“范围内的任何小写字母字符。

注意:仅当连字符位于字符组中时,并出现在两个字符之间,来表示字符范围。; 如果字符组的开头,它只能表示连字符本身。.

[^a-z]

负数字符范围。匹配不在指定范围内的任何性格。例如,“[^a-z]“可以匹配任何不在”a”到“z“范围内的任何字符。

\b

匹配单词的边界,即单词与空格之间的位置(即正则表达式的匹配有两个概念,一个是匹配字符,另一个是匹配位置,在这里。\b是为了匹配职位)。例如,“er\b“可以匹配”never”中的“er,但无法匹配verb”中的“er”;“\b1_“可以匹配”1_23”中的“1_,但无法匹配21_3”中的“1_”。

\B

匹配非单词边界。“er\B“可以匹配”verb”中的“er,但无法匹配never”中的“er”。

\cx

匹配由x指定的控制字符。例如,\cM匹配一个Control-M或者马车回程。x的值必须为A-Z或a-z一。否则,威尔c视其为原作“c”字符。

\d

匹配数字字符。等价物[0-9]。grep 要加上-P,perl正则支持

\D

匹配非数字字符。等价物[^0-9]。grep要加上-P,perl正则支持

\f

匹配分页符。等价物\x0c和\cL。

\n

匹配换行符。等价物\x0a和\cJ。

\r

匹配回车。等价物\x0d和\cM。

\s

匹配任何不可见字符,包括空格、制表符、分页符等。等价物[ \f\n\r\t\v]。

\S

匹配任何可见字符。等价物[^ \f\n\r\t\v]。

\t

匹配一个标签。等价物\x09和\cI。

\v

匹配垂直制表符。等价物\x0b和\cK。

\w

匹配包含下划线的任何单词字符。类似但不等同于“[A-Za-z0-9_]“,这里"单词"字符使用Unicode字符集。

\W

匹配任何非单词字符。相当于“[^A-Za-z0-9_]”。

\x n

匹配 n ,其中 n 是一个十六进制转义值。十六进制转义值必须是两个确定的数字长度。例如,“\x41”匹配“A”。“\x041“相当于”\x04&1“。可以使用正则表达式。ASCII编码。

\ num

匹配 num ,其中 num 是正整数。对获取的匹配项的引用。例如,“(.)\1“匹配两个连续的相同字符。

\ n

标识八进制转义值或向后引用。如果\ n 之前至少 n 获得的子表达式,然后 n 是向后引用。否则,如果 n 是一个八进制数(0-7),则 n 是一个八进制转义值。

\ nm

标识八进制转义值或向后引用。如果\ nm 至少在此之前 nm 然后获取子表达式 nm 是向后引用。如果\ nm 至少在此之前 n 收购,然后 n 查看后续文本 m 向后引用的。如果不满足上述任何条件,则为 nm 均是一个八进制数(0-7),则\ nm 将与八进制转义值匹配 nm

\ nml

如果 n 是一个八进制数(0-7),且 ml 均是一个八进制数(0-7),则匹配八进制转义值。 nml

\u n

匹配 n ,其中 n 是一个四个十六进制数。Unicode性格。例如,\u00A9匹配版权符号(©)。

\p{P}

小写 p 是 property 的含义 Unicode 财产, Unicode 正向表达式的前缀。在括号中“P”表示Unicode 字符集的七个字符属性之一:标点符号。

其他六个属性:

L:字母;

M:标记符号(通常不单独出现);

Z:分隔符(如空格、换行符等);

S:符号(例如数学符号、货币符号等);

N:数字(例如阿拉伯数字、罗马数字等);

C:其他角色。

*注意:不支持此语法的某些语言,例如:javascript。

\<

>

匹配词(word开始(\<)和结尾(>)。例如正则表达式\<the>能够匹配字符串"for the wise"中的"the",但不能与该字符串匹配。"otherwise"中的"the"。注意:并非所有软件都支持此元字符。

( )

将( 和 ) BETWEEN的表达式定义为“组”(group并将与该表达式匹配的字符保存到临时区域(一个正则表达式最多可以保存)。9),则可以使用它们。 \1 到\9 可供参考的符号。

|

逻辑“或”(or)操作。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但不匹配"it belongs to them."。注意:并非所有软件都支持此元字符。

常见正则表达式:

用户名

/^[a-z0-9_-]{3,16}$/

密码

/^[a-z0-9_-]{6,18}$/

十六进制值

/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

电子邮箱

/^([a-z0-9_.-]+)@([\da-z.-]+).([a-z.]{2,6})$/
/^[a-z\d]+(.[a-z\d]+)*@(\da-z?)+(.{1,2}[a-z]+)+$/

URL

/^(https?:\/\/)?([\da-z.-]+).([a-z.]{2,6})([\/\w .-])\/?$/

IP 地址

/((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

HTML 标签

/^<([a-z]+)([^<]+)(?:>(.)<\/\1>|\s+\/>)$/

删除代码\注释

(?<!http:|\S)//.*$

Unicode编码中的汉字范围

/^[\u2E80-\u9FFF]+$/

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除