RegExpression正则表达式学习

本文详细介绍了正则表达式的创建格式、属性及方法,并解释了各种标志符的作用,包括全局匹配、忽略大小写及多行匹配等特性。此外还提供了实际应用场景示例。
正则表达式的2中创建格式:
1:显示构造函数
var reg=new RegExp(pattern, attributes);

2:隐式的是
var reg=/pattern/attributes

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",
g全局匹配->[color=blue]如果不指定g标志字符,那么只会匹配最早的那个内容,而不是整个文本内容[/color]
i区分大小写的匹配->[color=indigo]如果设置了i,将忽略大小写的匹配[/color]
m多行匹配.->[color=cyan]如果没有设置m,那么元字符"^"只与整个被搜索的字符串的开始位置匹配,元 字 符"$"只与结尾匹配,如果设置了,“^”还可以与整个字符串的"\n"或"\r"之后进行匹配,
“$”还可以与整个字符串的"\n"或"\r"之前进行匹配[/color]

例如:下面等价
var reg=new RegExp("\\d{5}","g");
var reg=/\d{5}/g


RegExp 对象属性

FF: Firefox, IE: Internet Explorer
属性 描述 FF IE
global RegExp 对象是否具有标志 g。 1 4
ignoreCase RegExp 对象是否具有标志 i。 1 4
lastIndex 一个整数,标示开始下一次匹配的字符位置。 1 4
multiline RegExp 对象是否具有标志 m。 1 4
source 正则表达式的源文本。 1 4
RegExp 对象方法

FF: Firefox, IE: Internet Explorer
方法 描述 FF IE
compile 编译正则表达式。 1 4
exec 检索字符串中指定的值。返回找到的值,并确定其位置。 1 4
test 检索字符串中指定的值。返回 true 或 false。 1 4
支持正则表达式的 String 对象的方法

FF: Firefox, IE: Internet Explorer
方法 描述 FF IE
search 检索与正则表达式相匹配的值。 1 4
match 找到一个或多个正在表达式的匹配。1 4
replace 替换与正则表达式匹配的子串。 1 4
split 把字符串分割为字符串数组。 1 4


限定符:
{n} 重复n次
{n,} 至少重复n次
{n,m} 重复n-m次
+ 重复1-n次
* 重复0-n次
? 重复0-1次

选择符: | (chaper|select)1表示匹配chaper1或者select1


分组组合符:用小括号包围的部分 (pattern)

反向引用符:用于应用分组组合符所捕获的内容的标识符号,存放在缓冲区,最多可以存放99个,采用\num的方式引用
例如:(\d)(\d) 反向引用:就是\1\2 "\1"代表第一个\d 所捕获的内容
连续的5个字符:(\d)\1{4};

(?:patter)不需要索引和检索的使用
Industry|Industies 使用Indust(?:y|ies)而不用Industr(y|ies)前面的不会影响

(?=patter)正向“预测先行”匹配-->patter只是作为一个条件进行搜索返回的结果并不 包含patter部分,下面的例子要匹配的是windows字符串,但是前提是后面有NT或者2000

例如:windows (?=NT|2000)可以与windows NT 和 windows 2000的windows匹配 但是不能与windows 2003的windows匹配

(?!pattern)反向预测先行匹配
例如:windows (?!NT|2000)不可以与windows NT 和 windows 2000的windows匹配 但是能与windows 2003的windows匹配

预测现行的部分要不是放于首部,要不放于尾部
例如:windows (?=NT|2000) serviece在 windows NT serviece就没有搜索到结果

贪婪匹配和非贪婪匹配
贪婪:
以正则表达式匹配最长的原则进行匹配
例如zoom 使用zo+替换成r,结果是rm而不是room!

非贪婪
在限定符后面加上?,则匹配最短的
例如food 使用fo+? 匹配的是fo而不是foo fo+匹配的是foo


\b匹配任意字符的开始和结束
\s匹配任意的空白符
\d匹配任意的数字
\w匹配任意字母,数字,下划线
. 匹配除换行符意外的任意字符
^ 开始
$ 结束

反义:
\B \S \W \D
[^a]匹配除a以外的任意字符
[^abc]匹配除abc以外的任意字符


技巧:
比如将win windows修改成 lose windows用 /\bwin\b/g可以修改


java正则表达式::

import java.util.regex.*;
class Regex1{
public static void main(String args[]) {
String str="abcaccbcbaacabccaa";
String regEx="(ac)|(ca)";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
String s=m.replaceAll("");
regEx="(ab)|(ba)";
p=Pattern.compile(regEx);
s=p.matcher(s).replaceAll("");

System.out.print(s+"\n");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值