正则表达式(regex)入门

您所在的位置:网站首页 正则测试是什么意思呀 正则表达式(regex)入门

正则表达式(regex)入门

2024-07-02 19:14| 来源: 网络整理| 查看: 265

什么是正则表达式呢? 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),它是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。几乎在各种计算机编程语言中都有用到。可以分为普通正则表达式、扩展正则表达式、高级正则表达式。普通正则表达式在linux shell中常用到,高级正则表达式语法规范,基本由perl演化而来。目前常见程序语言(php,perl,python,java,c#)都支持高级正则表达式。

我们为什么要学习正则表达式? 高级程序语言的正则表达式几乎都从perl语言发展而来,因此,语法几乎一致。你学好了,一门正则表达式语言。几乎在所有程序语言中就可以用到。就像,我知道sql语法,后端mysql,mssql几乎都通用。这个也是我们需要学好正则表达式一个原因,通用性。另外一个原因是:正则表达式强大的文本匹配功能。很多文本匹配处理,如果没有正则表达式,还真的很难做出来。如:从一段字符串,读出手机号格式,我们如果用字符串查找,需要做循环,需要写判断。估计耗费不少代码,开发时间。如果用正则表达式,就一行代码就可以了。匹配所有成对的:html标签,如果要做这个,我们发现非常复杂,要处理层次,要匹配标签。一般同人短短几个小时可能完成不了。如果用正则表达式,估计也就几分钟而已。

正则表达式字符串格式 既然我们知道正则表达式重要性,通用性。那么我们对常见格式可以了解下。一般正则表达式由:普通字符+特殊字符(元字符)一起组成的字符串。如:匹配“ab开头,后面紧跟数字字符串“ “ab\d+” 这其中ab就是普通字符,\d代表可以是0-9数字,+代表前面字符可以出现1次或以上。哈哈,看起来还真的很容易吧!

正则表达式无论是普通还是扩展还是高级正则表达式。不同之处,可能在特殊字符方面有些不同。很多特殊字符,可以组合,形成一套新匹配规则。这里就不说太深了。我们一般只要知道它的常见元字符。基本上常见正则表达式就可以写出来了。

以下是javascript 正则表达式常见的元字符:

 

字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 ‘\\' 匹配 "\" 而 "\(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n' 或 ‘\r' 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n' 或 ‘\r' 之前的位置。*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。+匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。{n}n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 ‘o',但是能匹配 "food" 中的两个 o。{n,}n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 ‘o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 ‘o+'。'o{0,}' 则等价于 ‘o*'。{n,m}m 和 n 均为非负整数,其中n 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3