実現したいこと
正規表現で文字列に,(カンマ)がある場合、文字列を全選択したい。
但し()内のカンマは無視する。
前提
テスト文字列
■ マッチさせる a,b,c,d{ a,b(c, d),e { a,(b,c),d{ a , bwefbfrew{ a,:is(b,c)s ss:is(b,c)sssss{ wefewfew,fewf{ fwafaewa,(b,c){ ■ マッチさせない wefwefewfee{ (a,b,c,d)eeeeee(few)eeee{ ewfeweew{ wafewaf(s)ewfewew(){ afewfe(s,)wfew{ fef ewee{ a sefe few:has(few,few){ aafew:has(few,fewf,few){ ■ 考慮不要 (マッチしてもしなくても良い) s,ef (sfew, fwe{ 括弧か閉じられていない s,ef )sfw(, fwe{ 括弧か閉じられていない sef((sfew, fwe )) , ew { 括弧のネスト(正規表現が複雑になりそうなので不要 ルール的にはマッチ) sef((sfew, fwe )) ew { 括弧のネスト(正規表現が複雑になりそうなので不要 ルール的にはマッチしない) sef((sfew, fwe ) ,)ew { 括弧のネスト(正規表現が複雑になりそうなので不要 ルール的にはマッチしない) ,fewfew,{ カンマで始まる、終わる efwf,,, fewe{ カンマが連続する
該当のソースコード
自分でこのような正規表現を書き、上記の例では動いています。
/^((?=[^(]*,[^)]*).+)\{/
発生している問題
span:is(p, b, a),da{
これにもマッチするはずなのにマッチしないです。
どのような正規表現を書けばよいでしょうか?
またテストが抜けている部分があれば追加いただければと思います。
よろしくお願いします。

回答3件
あなたの回答
tips
プレビュー