正则表达式
常用方法:test()
test() 方法用于检测一个字符串是否匹配某个模式.
如果字符串中有匹配的值返回 true ,否则返回 false。
RegExpObject.test(string)
常用方法:exec()
exec() 方法用于检索字符串中的正则表达式的匹配。
如果字符串中有匹配的值返回该匹配值,否则返回 null。
RegExpObject.exec(string)
常用方法:match()
match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。
如果没有找到任何匹配的文本, match() 将返回 **null**。
否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
string.match(regexp)
常用方法:replace()
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
string.replace(searchvalue,newvalue);
searchvalue | 必须。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
newvalue | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
限定符
* | + | ? | {n} | {n,} | {n,m} |
0次/多次 | 1次/多次 | 0次/1次 | n次 | 至少n次 | 至少n次,至多m次 |
* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。
?=、?<=、?!、?<! 的使用区别
?= | exp1(?=exp2): 查找 exp2 前面的 exp1 | eg:
str='runboob runoob323 runoob323'; | exp2是数字,exp1是runoob 意思是:查找数字前面的runoob |
?<= | (?<=exp2)exp1:查找 exp2 后面的 exp1。 | eg: str='123 runoob 1323runoob runoob 33 runoob3343'; | exp2是数字,exp1是runoob 意思是:查找数字后面的runoob |
?! | exp1(?!exp2):查找后面不是 exp2 的 exp1。 | eg: str='runoob-sdfsf runoob232 runoobd 232runoob'; | exp2是数字,exp1是runoob 意思是:查找后面不是数字的runoob |
?<! | (?<!exp2)exp1:查找前面不是 exp2 的 exp1。 | eg: str='123runoob dfsd-runoob e4rerunoob'; | exp2是数字,exp1是runoob 意思是:查找前面不是数字的runoob |
反向引用
https://blog.csdn.net/qq_43161149/article/details/82928324
https://www.cnblogs.com/snzigod/p/4181202.html
正则表达式 \b (转):
http://www.javashuo.com/article/p-agdhhpph-kb.html
修饰符
修饰符 | 含义 | 描述 |
---|---|---|
i | ignore - 不区分大小写 | 将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。 |
g | global - 全局匹配 | 查找所有的匹配项。 |
m | multi line - 多行匹配 | 使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。 |
s | 特殊字符圆点 . 中包含换行符 \n | 默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n。 |