码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2018-08-16 19:57:24      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:出现   进制   组成   一个   字符串   字符   字符串操作   公式   非贪婪   

一.正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

二.正则表达式的运用

1.字符组

[0-9]  匹配的是[0123456789]的范围。

[a-z]  匹配的是所有的小写字母。

[A-Z]  表示所有的大写字母。

[0-9a-fA-F]  可以匹配数字,大小写形式的a-f,用来验证十六进制字符。

2.字符

.  表示匹配除换行符以外的任意字符

\w  匹配字母或数字或下划线

\s  匹配任意空白符 (\t  \n space)

\d  匹配数字

\n  匹配一个换行符

\t  匹配一个制表符

\b  匹配一个单词的结尾

^  匹配字符串的开始

$  匹配字符串的结尾

\W 匹配非字母或数字或下划线

\D  匹配非数字

\S   匹配非空白符

a|b  匹配字符a或字符b

()  匹配括号内的表达式,也表示一个组

[...]  匹配字符组中的字符

[^...]  匹配除了字符组中字符的所有字符

3.量词

*  重复0次或者更多次

+  重复一次或更多次

?  重复0次或者一次

{n}  重复n次

{n,}  重复n次或者更多次

{n,m}  重复n到m次

三.正则表达式特点

1.贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配

.*  默认为贪婪匹配模式,会匹配尽量长的字符串

.*?  加上?为将贪婪模式转为非贪婪模式,会匹配尽量短的字符串

2.几个常用的非贪婪匹配的Pattern

*?  重复任意次,但尽可能少重复

+?  重复一次或更多次,但尽可能少重复

??  重复0次或1次,但尽可能少重复

{n,m}?  重复n到m次,但尽可能少重复

(n,)?  重复n次以上,但尽可能少重复

 

.*?的用法

取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?x就是取前面任意长度的字符,直到一个x出现

 

正则表达式

标签:出现   进制   组成   一个   字符串   字符   字符串操作   公式   非贪婪   

原文地址:https://www.cnblogs.com/liuqingyang/p/9488592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!