加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式解析

发布时间:2020-12-13 22:25:23 所属栏目:百科 来源:网络整理
导读:正则表达式,又称正规表达式,常规表达式,是使用单个字符串来描述.匹配一系列符合某个句法规则的字符串,在很多文本编辑器中,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式的语法可以自行搜索,通常分为一下几个方面: 1字符 可以使用普通字

正则表达式,又称正规表达式,常规表达式,是使用单个字符串来描述.匹配一系列符合某个句法规则的字符串,在很多文本编辑器中,正则表达式通常被用来检索.替换那些符合某个模式的文本.

正则表达式的语法可以自行搜索,通常分为一下几个方面:

1>字符

可以使用普通字符匹配,例"a"

使用预定义字符表示给定范围中的某个字符,"d"表示匹配0~9中的任意一个数字字符.

使用 [ ] 给出自定义的范围,[a-z0-9]表示匹配a~z或数字0~9的某一个字符.

2>量词

有时候需要指定某个字符或组可以出现的次数,这时就要使用量词

"*" 表示指定的字符或组可以出现任意的次数(包括不出现)

"+" 表示指定的字符或组至少要出现一次

"?" 表示指定的字符或组最多出现一次,或者根本就没有.

"{n}","{m,n}","{n,}" 表示指定的字符或组必须出现n次,可以出现m~n次,最少出现n次,例"c{3}a{2-3}"表示由三个c开头后面跟2个或3个a.

3>边界符

进行匹配时,边界符不会匹配任何字符,只代表边界. 不可以将边界符理解为不可见字符,不可见字符是有内容的只是不可见而已;边界符不对任何字符匹配,只代表某个临界点

" ^ " 与" $ "分别表示的是字符串开始和结束的位置,一般用来匹配整个字符串. 例"^a*$"表示任意个a组成的字符串

" b "表示的是单词的边缘,在要求匹配的内容是整个单词而不是单词的一部分时,b就派上用场了

4>匹配次数的贪婪与非贪婪

贪婪模式下进行匹配时,将按照最大限度的可能进行匹配.

非贪婪模式是在匹配时按照最小限度的可能进行匹配

对abbbabbba进行匹配时," a[w]+a"匹配时会按照贪婪模式进行匹配,结果为;abbbabbba " a[w]+?a"则会按照非贪婪模式进行匹配,结果为:abbba

5>分组以及分组引用

( ) 和 " n "可以进行分组

Pattern与Matcher类:

Pattern类的对象用来表示通过编译的正则表达式,利用该类对象可以与任意字符串进行模式匹配( Pattern类的构造器是private的,不能通过调用构造器创建对象,需要调用Pattern类提供的静态工厂方法获得对象 pattern = Pattern.compile("(ab)+",Pattern.CASE_INSENSITIVE+Pattern.UNICODE_CASE); Pattern中有许多标志常量,多个标志常量可用+进行连接)

Matcher类,该类对象表示将要进行模式匹配的字符串或字符序列,同样,Matcher类对象夜不能通过调用构造器获得,需要通过Pattern对象中的matcher方法得到.有了Matcher对象可以调用相关方法进行匹配和替换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读