正则表达式的基础语法

总览

字符描述
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个八进制转义符
^匹配输入字符串的开始位置
$匹配输入字符串的结束位置
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次
?匹配前面的子表达式零次或一次
{n}n是一个非负整数,匹配确定的n次
{n,}n是一个非负整数,至少匹配n次
{n,m}n和m均为非负整数,其中n<=m.最少匹配n次且最多匹配m次
?当该字符紧跟在任何一个其他限制符,匹配模式是非贪婪的
.匹配除”.”之外的任何单个字符
xy
[xyz]字符集合,匹配所包含的任意一个字符
[^xyz]负值字符集合,匹配为包含的任意字符
[a-z]字符范围,匹配指定范围内的任意字符
[^a-z]负值字符范围,匹配任何不在指定范围内的任意字符
\b匹配一个单词边界
\B匹配非单词边界
\d匹配一个数字字符
\D匹配一个非数字字符
\f匹配一个换页符
\n匹配一个换行符
\r匹配一个回车符

基础语法

元字符

字符描述
.匹配除换行符以外的任意字符
^匹配字符串的开始
&匹配字符串的结束
\b匹配一个单词的边界
\d匹配一个数字
\n匹配一个换行符
\r匹配一个回车
\s匹配任意的空白符
\w匹配、字母、下划线、数字或汉字

字符转义

如果想查找元字符本身的话,需要用’\’来取消这些元字符的含义。比如: 用C:\Windows匹配C:\Windows

重复

字符描述
*重复0次或多次
+重复一次或多次
?重复0次货一次
{n}重复n次
{n,}重复n次或更多次
{n, m}重复n到m次

字符类

如果你想匹配数字、字母、空白等等,非常简单,因为已经有定义好的元字符与其对应。但如果,需要匹配没有对应元字符定义的字符集合,该怎么办?
正则表达式中,用”[]”来列出这些需要匹配的字符集合。在”[]”中,不存在元字符都会以本身含义出现。比如用[.?!]匹配这三个符号的任意一个、用[a-z0-9A-Z_]匹配字母数字和下划线,也就等价于\w

分组

在字符后面加上限定符(*、+、{n,m}),可以重复单个字符。如果需要重复多个字符串,需要用到”()”将需要重复的字符串内容包裹起来。

分支条件

用”|”匹配两种情况,比如“0\d{2}-\d{8}|0\d{3}-\d{7}”能匹配两种横线分割的电话号码。

Java正则表达式

Java 的正则表达式在匹配点“.” 和斜杠”\“,表达式要分别写作 \\. 和 \\\\,难看些,不好理解。幸好还有些人记住了,匹配点(.) 或 {、[、(、?、$、^ 和 * 这些特殊符号要要前加双斜框,匹配 \ 时要用四斜杠。
Java对正则表达式的助理,都放在java.util.regex包里。该包下包含Pattern和Matcher两个类,另外还有PatternSyntaxException类,用以捕获正则语法错误。
1. Pattern对象是正则表达式已编译的版本。它没有公共构造器,通过传递一个正则表达式参数给公共静态方法compile来创建一个pattern对象。
2. Matcher用来匹配输入字符串和创建的pattern对象的正则引擎对象。这个类也没有公共构造器,通过pattern对象的matcher方法,传入输入字符串作为参数来获得一个Matcher对象。
3. 如果正则表达式语法不正确,将抛出PatternSyntaxException异常。

JavaScript正则表达式

JavaScript中的正则表达式用RegExp对象表示。可以通过使用RegExp()构造函数来创建。但更多的时候是通过一种特殊的直接量语法来创建

var pattern = /s$/;

正则表达式的直接量定义为包含在斜杠(“/”)之间的字符串。

修饰符

JavaScript的正则表达式有一个特殊的语法,即修饰符。修饰符并不放在两个斜杠(“/”)之间,而是放在它们之后。

修饰符描述
i执行不区分大小写的匹配
g执行一个全局匹配
m多行匹配模式




本文内容部分参考自:http://deerchao.net/tutorials/regex/regex.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值