Помогите с регуляркой
-
вот сам проект
Где проект?
я этот список сделал с помощью notepad++ с такими регулировками
но в bas Не работает почему таОсновная причина, почему регулярка где то работает, а в BAS не работает, в разном виде данных в BAS'e, строка, массив, объект..
Даже строка с переносом строки уже может не дать нужный результат:
Регулярка верная, поиск цифр с жадным алгоритмом по идее должен взять все цифры, но нет. Перенос строки берёт только \s - пробел.
-
@Fox я удалил потому что получилось сделать спасибо еще раз за совет
-
@Fox
как сделать чтоб из списка выводил текст под регулярное выражение? ты делал чтоб удалял из списка и очень помог этим а вот как выводить не знаю на басе ничего не выводить из списка только если полностью знаешь строку можно вывестиэти коды если добавить в тему Лайфхаки многим людям помогут
пробовал с "Первое вхождение" из списка не выводить
Вот так делал
[[PER3]] = [[TEST_NOMER_AVTOSMS]].map(function(el){ return el.match( /.*777.*/i ); })
из списка выводит но еще выводит в переменную все строки только в других написано null
-
@GamiD Тут наверное проще так. Функция map для модификации... И регулярку поправил.
var arrIn=[[TEST_NOMER_AVTOSMS]]; var arrOut=[]; arrIn.forEach(function(str,i, arrIn) { str=str.match(/777\d*/); if (str){arrOut.push(str[0])}; }); [[PER3]] =arrOut;
-
@Denis_krsk Спасибо но не выводить если в регулярку поставить переменную
var arrIn=[[TEST_NOMER_AVTOSMS]]; var arrOut=[]; arrIn.forEach(function(str,i, arrIn) { str=str.match(/[[USER_NOMER_AVTOSMS]]:\d*/); if (str){arrOut.push(str[0])}; }); [[JOIN_RESULT_STRING]] =arrOut;
и можно сразу в строку вывести а не в список?
-
var arrIn=[[TEST_NOMER_AVTOSMS]];
var arrOut=[];
arrIn.forEach(function(str,i, arrIn) {
str=str.match(/[[USER_NOMER_AVTOSMS]]:\d*/);
if (str){arrOut.push(str[0])};
});
[[JOIN_RESULT_STRING]] =arrOut.join(',');
-
@Denis_krsk с переменным не работает
так не работает var arrIn=[[TEST_NOMER_AVTOSMS]]; var arrOut=[]; arrIn.forEach(function(str,i, arrIn) { str=str.match(/[[USER_NOMER_AVTOSMS]]:\d*/); if (str){arrOut.push(str[0])}; }); [[JOIN_RESULT_STRING]] =arrOut.join(',');
а так работает но в переменной [[USER_NOMER_AVTOSMS]] только текст 77775985769 var arrIn=[[TEST_NOMER_AVTOSMS]]; var arrOut=[]; arrIn.forEach(function(str,i, arrIn) { str=str.match(/77775985769:\d*/); if (str){arrOut.push(str[0])}; }); [[JOIN_RESULT_STRING]] =arrOut.join(',');
-
@GamiD попробуй str=str.match(eval('/'+[[USER_NOMER_AVTOSMS]]+':\d*/');
-
@Denis_krsk нет не получается
-
@GamiD str=str.match(eval('/'+[[USER_NOMER_AVTOSMS]]+':\d*/')); // тут скобки не хватало, может поэтому.
-
@Denis_krsk вот так заработал
str=str.match(eval('/'+[[USER_NOMER_AVTOSMS]]+':[0-9]*/'));
от души братан четко работает
-
@Denis_krsk said in Помогите с регуляркой:
@GamiD str=str.match(eval('/'+[[USER_NOMER_AVTOSMS]]+':\d*/')); // тут скобки не хватало, может поэтому.
думаю если поставить эти коды в лайфхаки многим понадобятся
-
@GamiD Да это основы js, я сам его не знаю, но стараюсь читать когда есть время либо необходимость.
-
@Denis_krsk я так то вообще не знаю js надо учить
-
@GamiD https://learn.javascript.ru тут все доступно
-
Есть у кого-нибудь опыт создания фильтра стоп(мат)-слов? Я сделал по статье https://habrahabr.ru/post/101232/ , но мне кажется это далеко не очень оптимально. Может поделитись опытом если есть. :) Я вот думаю может сначала проверяемую фразу разбить на слова, затем каждое слово с помощью рег.в. нормализовать, то есть исправить транслит и т.п. на кириллицу а затем уже просто проверять по словарю? Морфологическим аналазом я точно не собирасюь заниматься, надо что-то более менее оптимальное.
-
@Denis_krsk бесполезное занятие.. совсем бесполезное.. особенно для ру сегмента. одно только слово с забора можно парой сотен вариаций написать, а если пилить под него регулярку то, то зарежешь и добрую часть литературного языка
-
@Denis_krsk Соглашусь с @artihorror , заштрихуй, ослаблять, и т.п. Плюс можно использовать цифры, знаки..
-
@Fox У меня бот постит комменты в сетях. Но комменты пишет заказчик. Бывают пишут оскорбительные и т.п. И дабы не попасть под жалобы жертв и УК РФ нужно таки их отсевать. Сделал пока по статье с хабра. Посмотрим..
-
@Denis_krsk УК РФ
Статья 20.1. Мелкое хулиганство
[Кодекс РФ об административных правонарушениях] [Глава 20] [Статья 20.1]- Мелкое хулиганство, то есть нарушение общественного порядка, выражающее явное неуважение к >обществу, сопровождающееся нецензурной бранью в общественных местах, оскорбительным >приставанием к гражданам, а равно уничтожением или повреждением чужого имущества, -
влечет наложение административного штрафа в размере от пятисот до одной тысячи рублей или >административный арест на срок до пятнадцати суток.
- Те же действия, сопряженные с неповиновением законному требованию представителя власти либо >иного лица, исполняющего обязанности по охране общественного порядка или пресекающего >нарушение общественного порядка, -
влекут наложение административного штрафа в размере от одной тысячи до двух тысяч пятисот рублей >или административный арест на срок до пятнадцати суток.
А против жалоб ни какой фильтр не поможет. Идеальный вариант, на мой взгляд, это переложить ответственность на зазчика через лицензионное соглашение например.