一、正则表达式
正则表达式描述了一种字符串的匹配模式。在我们学过的数据结构中,与子串的模式匹配有些內似。只不过可进行模糊匹配,功能非常强大。
二、语法
一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
语法:
/匹配对象的模式/ 其中,位于 “/” 定界符之间的部分就是将要在目标对象中进行匹配的模式。
用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。 例如,在字符串“abcd”中查找匹配模式bc,代码如下: /bc/
下面的列出了在正则表达式中能够使用的字符列表及相关描述。
注意的几点:
(1)特殊字符转义:当我们匹配的内容里有(. + * ? \等等),需要在使用的前面加“\”表示。
(2)贪婪匹配与非贪婪匹配: 默认情况下,正则表达式使用最长匹配原则,即贪婪匹配原则。
例如,要将“sssstress”中匹配“s+" 则默认尽可能让一个单元包含更多的字符。
如果要匹配最短的。当字符“s+”紧跟任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式变成使用最短匹配原则,即非贪婪匹配原则。
三、String对象中的模式匹配
1.match() 使用正则表达式模式对字符串进行查找,并将查找的结果作为数组返回,如果没有找到,则返回null。
2.search() 返回正则表达式查找内容的第一个子串的位置,若没有找到,返回-1。
返回结果是:4
3.replace() 先使用表达式模式对字符串进行搜索,再对搜索到的内容用自己指定的字符串进行替换。它返回的是一个字符串对象。
4.split() 按照自定义分割标识符把一个字符串拆分成若干个子串,返回的是数组。
四、RexExp对象
每一条正则表达式模式对应一个RegExp实例,有两种方式可以创建RegExp对象的实例。
使用RegExp的显式构造函数
语法: new RegExp("pattern"[,"flags"]) //即 new RegExp(" 模式 "[," 标记 "])
使用RegExp的隐式构造函数,采用纯文本格式
语法: /pattern/[flags] pattern部分为要使用的正则表达式模式文本,是必须的。
在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来;
在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。 flags部分设置正则表达式的标志信息,是可选项。
RegExp对象的方法
(1) rgExp.exec(str)
在"待查找的完整字符串"中,依次查找每个符合rgExp要求的关键词。返回值是本次找到的一个关键词及其位置。
参数说明: rgExp:必选项。包含正则表达式模式和可用标志的正则表达式对象。 Str:必选项。要在其中执行查找的String对象或字符串文字。
(2) rgexp.test(str)
检查字符串是否完全符合正则表达式的要求。
参数说明: rgexp:必选项。包含正则表达式模式或可用标志的正则表达式对象。 Str:必选项。要在其上测试查找的字符串。
只要验证,re中必须前加^后加$
我是小白,写博客也是为了记录每天学习的点滴。我会慢慢改正,感谢纠正。