括弧でくくられてないカンマを検索する。 ただし、1行につき括弧の数は、4個までとする 検索前 検索後
(a,b) (a,b),((c,d),(e,f)) (a,b),(c,d) a,b,c,(d,e) ((a,b)+(c,d))*3+(a,b)*5 ((a,b)+(c,d))*3+(a,b)*5,(a,b) a,b,c,
,(((?=([^(]*\(){4}[^(]*$)(?=([^)]*\)){4}[^)]*$))| ((?=([^(]*\(){3}[^(]*$)(?=([^)]*\)){3}[^)]*$))| ((?=([^(]*\(){2}[^(]*$)(?=([^)]*\)){2}[^)]*$))| ((?=([^(]*\(){1}[^(]*$)(?=([^)]*\)){1}[^)]*$))| (?=[^()]*$))
肯定先読みで、 開き括弧と、閉じ括弧の数が等しければ、括弧でくくられてない という考え方をしてます ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ちなみに、括弧でくくられたカンマを検索する正規表現は、 _________________________ A*B + C*D + E*F + G*H + I に、ドモルガンの法則を適用して ___ ___ ___ ___ _ (A*B) * (C*D) * (E*F) * (G*H) * I 再度、ドモルガンの法則を適用して _ _ _ _ _ _ _ _ _ (A+B) * (C+D) * (E+F) * (G+H) * I よって、 ,(((?!([^(]*\(){4}[^(]*$)|(?!([^)]*\)){4}[^)]*$)) ((?!([^(]*\(){3}[^(]*$)|(?!([^)]*\)){3}[^)]*$)) ((?!([^(]*\(){2}[^(]*$)|(?!([^)]*\)){2}[^)]*$)) ((?!([^(]*\(){1}[^(]*$)|(?!([^)]*\)){1}[^)]*$)) (?![^()]*$)) となります。 A*B + C*D + E*F + G*H + I = 0 に双対の原理を適用して _ _ _ _ _ _ _ _ _ (A+B) * (C+D) * (E+F) * (G+H) + I = 1 と変形してもいいですけどね 5-3 最も内側の括弧の中身を検索 5-23 外側の括弧の中身を検索