私のデータが次のようになっているとしましょう
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
、これがグローバル検索であることを示しています。最初の文字列だけでなく、引用符で囲まれたすべての文字列が必要です。"
照合する文字列の前後の引用符を表します.
任意の文字を意味します+?
正規表現の次の文字までのすべてを意味するイディオムです。言い換えれば、貪欲でない一致です。*
ここで の代わりに使用する+?
と、最初の と最後の の間に大きな引用符で囲まれた文字列が 1 つだけ見つかり"
、他のすべての がその"
中に含まれます!/{/g
カウントします{
。を使用することで、ブレース文字が見つからない場合でも||[]
の戻り値を確実に取得できます。0
reduce
これには の初期値が与えられます0
。