您的位置:首页 > 其它

正则表达式

2014-04-26 13:55 169 查看
首先介绍一个练习工具:http://tool.chinaz.com/regex/

在线验证工具。

正则表达式到底是什么东西?

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
常用限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
常用反义词

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符
正则表达式里面的模式问题

【1】贪婪模式

比如说\d{1,4}可以匹配1个到4个字符,在贪婪模式下面引擎尽可能匹配多的字符

比如上面的式子匹配123456这个字符串,他会匹配到1234这个字符串。

【2】非贪婪模式

非贪婪从字面上讲和前面的相反,第一次找到符合条件的即认为已经找到目标串。

还是上面的例子,123456 非贪婪只会一个个匹配。即结果是1,2,·····

【3】模式切换

引擎默认是贪婪模式,要想转换为非贪婪,只要在范围选择的表达式后面加一个?即可。

比如上面你的式子,\d{1,4}?就完成了模式转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: