更新时间:2021-08-12 12:01:43 来源:极悦 浏览899次
要创建正则表达式,您必须使用特定的语法——即特殊字符和构造规则。例如,以下是匹配任何 10 位电话号码的简单正则表达式,格式为 nnn-nnn-nnnn:
\d{3}-\d{3}-\d{4}
有关其他说明和指南,另请参阅指南使用正则表达式和正则表达式的例子。
下表描述了在正则表达式中使用的一些最常见的特殊字符。这些字符分类如下:
^
(插入符号)匹配正则表达式正在搜索的文本行或字符串的开头。例如,具有位置主题行和以下正则表达式的内容规则:
^abc
捕获主题行以字母abc开头的任何电子邮件
$
(美元)匹配正则表达式正在搜索的文本行或字符串的结尾。例如,具有位置主题行和以下正则表达式的内容规则:
xyz$
捕获主题行以字母xyz结尾的任何电子邮件
.
(点)匹配任何单个字符,新行除外。
|
(管道)表示交替——即“或”。例如:
cat|dog 匹配单词cat或dog
\
表示下一个字符是文字而不是特殊字符。例如:
\。匹配文字句点,而不是任何字符(点字符)
[...]
匹配一组字符中的任何字符。用破折号分隔集合中的第一个和最后一个字符。例如:
[123] 匹配数字1、2或3
[af] 匹配从a到f 的任何字母
注意:内容合规性策略中的正则表达式区分大小写。
[^...]
匹配不在字符集中的任何字符。例如:
[^af]
匹配不是从a到f的字母的任何字符
注意:内容合规性策略中的正则表达式区分大小写。
[:alnum:]
匹配字母数字字符(字母或数字):
az、AZ或0-9
注意:在正则表达式中使用此字符类时,必须用另一组方括号括起来,例如: [[:alnum:]] .
[:α:]
匹配字母字符(字母):
az或AZ
注意:在正则表达式中使用该字符类时,必须用另一组方括号括起来,例如:[[:alpha:]]。
[:数字:]
匹配数字:
0-9
注意:在正则表达式中使用该字符类时,必须用另一组方括号括起来,例如:[[:digit:]]。
[:图形:]
仅匹配可见字符,即除空格、控制字符等之外的任何字符。
注意:这个字符类在正则表达式中使用时必须用另一组方括号括起来,例如:[[:graph:]]。
[:点:]
匹配标点字符和符号:
! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }
注意:当你在一个字符类中使用它时,这个字符类必须用另一组方括号括起来正则表达式,例如:[[:punct:]]。
[:打印:]
匹配可见字符和空格。
注意:这个字符类在正则表达式中使用时必须用另一组方括号括起来,例如:[[:print:]]。
[:空间:]
匹配所有空白字符,包括空格、制表符和换行符。
注意:这个字符类在正则表达式中使用时必须用另一组方括号括起来,例如:[[:space:]]。
[:单词:]
匹配任何单词字符——即任何字母、数字或下划线:
az、AZ、0-9或 _
注意:在正则表达式中使用该字符类时,必须用另一组方括号括起来,例如例如:[[:word:]]。
\w
匹配任何单词字符——即任何字母、数字或下划线:
az、AZ、0-9或 _
等效于 [:word:]
\W
匹配任何非单词字符,即不是字母、数字或下划线的任何字符。
相当于 [^[:word:]]
\s
匹配任何空白字符。例如,使用此字符指定短语中单词之间的空格:
stock\stips 匹配短语stock tips
等效于 [:space:]
\S
匹配任何非空格字符。
相当于 [^[:space:]]
\d
匹配 0-9 之间的任何数字。
相当于 [:digit:]
\D
匹配任何不是 0-9 数字的字符。
相当于 [^[:digit:]]
(……)
对表达式的部分进行分组。使用分组将量词应用于组或匹配组之前或之后的字符类。
{n}
精确匹配前面的表达式 n 次。例如:
[ac]{2}仅当连续出现两个字母时才匹配从a到c 的任何字母。因此,表达式将匹配ab和bc但不匹配abc或aabbc。
{n,m}
匹配前面的表达式最少 n 次,最多 m 次。例如:
[ac]{2,4}仅当字母连续出现最少 2 次和最多 4 次时才匹配从a到c 的任何字母。因此,表达式将匹配ab和abc但不匹配 aabbc。
?
表示前面的字符或表达式可以匹配 0 次或 1 次。等效于范围 {0,1}。例如,以下正则表达式:
colou?r
匹配color或color,因为? 使字母u可选。
正则表达式字符限制
不支持包含以下特殊字符的正则表达式,因为它们会导致处理电子邮件的延迟:
*(星号)
+(加号)
以上就是极悦小编介绍的"正则表达式语法总结",希望对大家有帮助,想了解更多可查看Java极悦在线学习。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习