正则表达式

662 阅读1分钟

参考文档 www.runoob.com/regexp/rege…

测试工具:

regexbuddy:http://www.regexbuddy.com/
在线测试工具:http://tool.chinaz.com/regex
在线测试:https://c.runoob.com/front-end/854

介绍

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等

作用

测试字符串内的模式:例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
替换文本:可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
基于模式匹配从字符串中提取子字符串:可以查找文档内或输入域内特定的文本。

最常用的通配符

^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置

? 匹配文件名中的 0 个或 1 个
* 匹配零个或多个
+ 匹配一个或多个

. 匹配除了换行符以外的所有字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束

匹配规则

基本模式匹配

模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符
模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。

字符簇

在INTERNET的程序中,正则表达式通常用来验证用户的输入。
当用户提交一个FORM以后,要判断输入的电话号码、地址、EMAIL地址、信用卡号码等是否有效,用普通的基于字面的字符是不够的。

所以要用一种更自由的描述我们要的模式的办法,它就是字符簇。要建立一个表示所有元音字符的字符簇,就把所有的元音字符放在一个方括号里:[AaEeIiOoUu]

这个模式与任何元音字符匹配,但只能表示一个字符。用连字号可以表示一个字符的范围

[a-z] //匹配所有的小写字母 
[A-Z] //匹配所有的大写字母 
[a-zA-Z] //匹配所有的字母 
[0-9] //匹配所有的数字 
[0-9\.\-] //匹配所有的数字,句号和减号 
[ \f\r\t\n] //匹配所有的白字符

常见模式

^[a-zA-Z0-9_]+$      // 所有包含一个以上的字母、数字或下划线的字符串 
^[1-9][0-9]*$        // 所有的正整数 
^\-?[0-9]+$          // 所有的整数 
^[-]?[0-9]+(\.[0-9]+)?$ // 所有的浮点数