Je construis un insert Mysql avec regex.Supprimer les lignes contenant plus de X valeurs, en utilisant regex
C'est ce que l'insert ressemble jusqu'à présent:
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#), (#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#), (#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#);
Dans une personne précédente question m'a aidé à écrire cette expression regex pour supprimer une valeur qui est smalled que l'exemple ci-dessus
var stripped30 = htstring30.replace(/\((?:[^#\n]*?#[^#\n]*?#[,\s]?){0,8}\)[,;]\s*/ig, '');
Cela va supprimer l'exception ci-dessous et le supprimer, me laissant avec seulement les 9 tables que je veux.
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#),
Maintenant, je veux essentiellement faire la même chose mais cette fois supprimer toutes les exceptions plus grandes que 9 - Quelqu'un peut-il me aider s'il vous plaît de le faire.
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#),
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#, #text10#),
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#, #text10#, #text11#);
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#),
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#),
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#, #text7#, #text8#, #text9#);
Alors que quand il y a une exception plus que 9 que je le supprimer
Je l'ai essayé mais il a tout effacé/^ (?! \ S * \ ((?: # [^ # \ N] * # (?: \ S *, \ s * # [^ # \ n] * #) {8} \) [,;] \ s * $). * [^;];? $/Mg J'ai reçu une erreur lors de son utilisation initiale,/^ (?! \ S * \ ((? : # [^ # \ n] * # (?: \ s *, \ s * # [^ # \ n] * #) {8} \) [,;] \ s * $)). * [^; ];? $/mg et ajout d'une parenthèse fermante –
@Gerald Ferreira: Correction de – Gumbo
+1 Oui, celui-ci supprime correctement les enregistrements "trop longs" et "trop courts" – ridgerunner