假设我的数据如下
Hello { "I have {g{t{" braces { between "{" { quotes{ "{{"
如何匹配仅在引号之间的 { 符号?我试图仅在引号之间提取指定字符的出现次数。有任何想法吗?样本应匹配 6 个大括号
假设我的数据如下
Hello { "I have {g{t{" braces { between "{" { quotes{ "{{"
如何匹配仅在引号之间的 { 符号?我试图仅在引号之间提取指定字符的出现次数。有任何想法吗?样本应匹配 6 个大括号
var nb = str.split('"').filter(function(_,i){return i%2}).join('')
.split('{').length - 1;
s
你的字符串在哪里
s.match(/"(.+?)"/g).reduce(function(p,c) {return p + (c.match(/{/g)||[]).length;}, 0);
由于有些人觉得正则表达式很吓人,我认为逐步了解它的工作原理可能会有所帮助。:)
/"(.+?)"/g
为您提供原始字符串中所有带引号的字符串的数组。
/
and/
就像引号是字符串一样。表明g
这是一个全局搜索——我们想要所有引用的字符串,而不仅仅是第一个。"
表示要匹配的字符串前后的引号.
表示任何字符+?
是一个成语,表示正则表达式中直到下一个字符的所有内容;换句话说,非贪婪匹配。如果我们*
在这里使用而不是在+?
first 和 last 之间只找到一个大引号字符串"
,并且所有其他"
s 都包含在其中!/{/g
计算你的{
字符。通过使用||[]
,我们确保0
即使没有找到大括号字符,我们也会获得返回值。reduce
,我们提供 的初始值0
。