正则表达式

Posted liuqingyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

一.正则表达式

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

二.正则表达式的运用

1.字符组

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

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

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

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

2.字符

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

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

s  匹配任意空白符 (   space)

d  匹配数字

  匹配一个换行符

  匹配一个制表符

  匹配一个单词的结尾

^  匹配字符串的开始

$  匹配字符串的结尾

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出现

 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解