Ich baue eine Mysql-Einfügung mit Regex.Entfernen Sie Zeilen, die mehr als X-Werte enthalten, mit Regex
Dies ist, was der Einsatz wie bisher aussieht:
(#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#);
In einer früheren Frage jemand hat mir geholfen, diesen regulären Ausdruck zu schreiben, um einen Wert zu löschen, die als Beispiel oben
var stripped30 = htstring30.replace(/\((?:[^#\n]*?#[^#\n]*?#[,\s]?){0,8}\)[,;]\s*/ig, '');
smalled ist
Dies wird die unten stehende Ausnahme entfernen und löschen, so dass ich nur die 9 Tabellen habe, die ich möchte.
(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#),
Jetzt möchte ich im Grunde die gleiche Sache zu tun, aber dieses Mal löschen Sie alle Ausnahmen größer als 9 - Kann jemand mir bitte helfen, dies zu tun.
(#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#);
So dass, wenn es eine Ausnahme größer als 9 ist, die ich löschen kann es
Ich habe es versucht, aber es löschte alles/^ (?! \ S * \ ((?: # [^ # \ N] * # (?: \ S *, \ s * # [^ # \ n] * #) {8} \) [,;] \ s * $). * [^;];? $/Mg Ich habe einen Fehler bei der ersten Verwendung erhalten,/^ (?! \ S * \ ((? : # [^ # \ n] * # (?: \ s *, \ s * # [^ # \ n] * #) {8} \) [,;] \ s * $)). * [^; ];? $/mg und fügte eine schließende Klammer hinzu –
@Gerald Ferreira: Korrigiert es. – Gumbo
+1 Yup, dieses entfernt korrekt sowohl "zu lange" als auch "zu kurze" Aufzeichnungen. – ridgerunner