正则表达式

一 概述

1.什么是正则表达式?

正则表达式是用来判断字符串是否满足指定格式的表达式,是一门独立于编程语言的学科。

2.基本构成

正则表达式有一些具有特殊含义的字符构成,这些字符被叫做正则表达式的元字符:

元字符 含义
. 任意一个字符
\d 任意一个数字
\D 任意一个非数字字符
\s 任意一个空白字符
\S 任意一个非空白字符
\w 任意一个可用作标识符的字符,$除外
\W 任意一个不可用作标识符的字符
  • 如果正则表达式被双引号括起来,并且元字符前面没有加“\”,系统将元字符视作转义字符处理,找不到指定的转义字符,则报错,因此字符串形式的正则表达式元字符前面需要加“\”,非字符表达式形式不需要加。
  • 在XML中,正则表达式的书写方式:<![CDATA[正则表达式(使用元字符)]]>。
  • 在正则表达式中,如果需要使用“.”,则以“\\.”方式使用。

3.次数限定修饰符

限定字符出现的次数,用在字符后面:

符号 含义
0次或者1次
+ 1次或者多次
* 0或多次
{n} n次
{n,} 至少n次
{n,m} n-m次

4.首尾限定修饰符

必须以指定的字符开始或者结尾:

字符 含义
^a 以a开头
a$ 以a结尾

在正则表达式中,如果结尾限定了某种类型数据的出现次数,必须在结尾加上“$”,不然当在规定次数的字符后面出现其他字符时,也有可能验证通过,即限定结尾次数时必须加“$”。

5.列表限定修饰符

限定出现列表中任意一个元素,或者全部不出现:包含性限定修饰符与排他性限定修饰符。

字符 含义
[abc] 代表a/b/c中任一个字符
[^abc] 代表a/b/c中以外任一个字符

6.|

在正则表达式中可以使用|字符连接两种表达式形式,满足其中一种即满足。

二 正则表达式的应用

在一般java代码中判断字符是否符合给定的格式;

s.matches(res);
Pattern.matches(res,s);

在Scanner简单文本扫描器中,用来截取字符:

Scanner scanner=new Scanner(source).userDelimiter(String regex);//创建使用指定分隔符的简单文本扫描器
String s=scanner.next();//读取下一个字符(被分隔符包裹的部分就是字符)

在JavaScript中创建RegExp对象:

var regex=/正则表达式(使用元字符)/;
var regex=new RegExp("正则表达式");
var matching=regex.test(str);

 

posted @ 2017-07-24 22:36  tonghun  阅读(584)  评论(0编辑  收藏  举报