Удалите строки, содержащие более X значений, используя регулярное выражение - PullRequest
1 голос
/ 03 августа 2009

Я создаю Mysql-вставку с регулярным выражением.

Вот так выглядит вставка:

(#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#);

В предыдущем вопросе кто-то помог мне написать это регулярное выражение, чтобы удалить значение, которое меньше, чем в примере выше

var stripped30 = htstring30.replace(/\((?:[^#\n]*?#[^#\n]*?#[,\s]?){0,8}\)[,;]\s*/ig, '');

Это удалит приведенное ниже исключение и удалит его, оставив мне только 9 таблиц, которые мне нужны.

(#text1#,#text2#,#text3#,#text4#,#text5#,#text6#), 

Теперь я в основном хочу сделать то же самое, но на этот раз удалите все исключения больше 9 - Кто-нибудь может помочь мне сделать это.

(#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#);

Чтобы при исключении, превышающем 9, я мог удалить его

Ответы [ 2 ]

1 голос
/ 03 августа 2009

Вы можете использовать это регулярное выражение для удаления каждой строки, которая не имеет 9 записей:

/^(?!\s*\((?:#[^#\n]*#(?:\s*,\s*#[^#\n]*#){8})\)[,;]\s*$).*/mg
0 голосов
/ 03 августа 2009

Вы можете попробовать следующее:

var stripped30 = htstring30.replace(/\((?:[^#\n]*?#[^#\n]*?#[,\s]?){10,}\)[,;]\s*/ig, '');

где пробел после 10, указывает на отсутствие верхней границы.

редактирование:

, используя мой ответ на предыдущий вопрос , но обновление его, как я сделал в вашем примере выше, дает для меня хорошие результаты:

\(([\s]*#[^#]+#[\s]*,?){10,}\)[,;]*

Дайте мне знать, как вы поживаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...