var str = ‘I am siqang while u are reading‘; var reg = /\b\w+(?=\q)/g; console.log(str.match(reg)); //si
//表示匹配表达式q前面的字符
注意:先行断言的执行步骤是:先从要匹配的字符串中的最右端找到表达式第一个然后 再匹配其前面的表达式,若无法匹配则继续查找第二个ing 再匹配第二个 ing前面的字符串,若能匹配则匹配
var str = ‘I am siqang while u are reading‘; var reg = /(?<=\q)\w+/g; console.log(str.match(reg)); //ang
//表达匹配表达式q后面的字符
注意:后发断言跟先行断言恰恰相反 它的执行步骤是这样的:先从要匹配的字符串中的最左端找到第一个表达式,然后再匹配其后面的表达式,若无法匹配则继续查找第二个abc 再匹配第二个abc后面的字符串,若能匹配 则匹配
var str = ‘I am siqang while u are reading‘; var reg = /\b\w*\i(?!n)\w*\b/g; console.log(str.match(reg)); //siqang和while" 负向零宽先行断言 //表示匹配字符 i 后面不是字符 n 的位置
var str = ‘I am siqang while u are reading‘; var reg = /\b\w*\i(?<!n)\w*\b/g; console.log(str.match(reg));//siqang和while和reading 负向零宽后发断言
主要看这两篇 https://www.iteye.com/blog/hooopo-407062
https://www.cnblogs.com/macq/p/6597366.html
var greedy = ‘Greedy can be dangerous at times‘ var reg1 = /a.*a/; console.log(greedy.match(reg1));
尽可能最长的从a匹配到最后一个a的字符串 贪婪性质 .*
var greedy = ‘Greedy can be dangerous at times‘ var reg1 = /a.*?a/; console.log(greedy.match(reg1));
尽可能最短的从a到下一个a的字符串 懒惰特性 .*?
强推b站那个视频 15分钟速成正则表达式 适合新手看
?在正则表达式叫非贪婪模式
IgonreCase 忽略大小写 (简写i):匹配时不区分大小写
Multiline 多行模式 (简写m):更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)
Singleline 单行模式 (简写s):更改 . 的含义,使它与每一个字符匹配(包括换行符\n)
IgonrePatternWhitespace 忽略空白:忽略表达式中的非转义空包并启用由#标记的注释
ExplicitCaptrue 显示捕获:仅捕获已被显示命名的组
原文:https://www.cnblogs.com/xiao-7/p/13869649.html