@UserTrue
Когда искал по форуму, часто встречал ответы этого пользователя. Если найдется минутка, поделитесь опытом. Пока выделил два возможных решения замены curl http. Может есть еще варианты? Какой вариант для вас лучше?
Помогите с регуляркой
-
Не получается сортировать список уже несколько часов мучаюсь с эти в notepad++ все работает без проблем а вот в base проблема
Получил каждый текст с сайта с помощью xpath
Полученный список объединил в строку без разделителя в полученном тексте был разделитель ";" с помощью "Разделить строку" разделил отдельно по строкам

теперь нужно в каждой строке заменить содержимое с помощью регулярки(регулярки будут разные чтоб под каждую строку совпадали внизу который я написал должен совпадать с первой строкой)
если скопировать полученный с сайта текст который в "Инспектор переменных" и поставить в шаблон или в переменную то работает регулярка а на прямую с сайта полученных данных нетРегулярки делал сам и в конструкторе и то и другое работает в notepad++
\#http://site\.ru/(.*)/(.*)/\|(.*)\ (.*)\|@(.*)@: \1-\2-\3-\4-\5
#http://site.ru/profile/stein_sv/|Станислав Гудзенко|@ 8 January@:; #http://site.ru/profile/gulmira0280/|Гульмира Гульмира|(38 years | Алма-Ата, Казахстан):; #http://site.ru/profile/alexeiv/|Алексей Вратциди|(Мюнхен, Германия)@31 January@:; #http://site.ru/profile/vadim1975/|Вадим Корабельников|(Алма-Ата, Казахстан)@25 January@:; #http://site.ru/profile/abilov1977/|Талгат Талгат|(40 years)@ 2 February@:; #http://site.ru/profile/karma_777/|Татьяна Павлова|(Волгодонск, Ростовская обл., Россия)@31 January@:; #http://site.ru/profile/ernursat/|Ернур Сатыбалдин|(57 years | Алма-Ата, Казахстан)@ 8 January@:; #http://site.ru/profile/kazbus/|Казбек Тунгатбаев|(48 years | Алма-Ата, Казахстан)@ 2 February@:; #http://site.ru/profile/nurkadam/|Nurkadam Kerimkulov|(37 years | Астана, Казахстан)@ 5 February@:; #http://site.ru/profile/happy2003/|Aisulu Kasimova|(40 years)@ 7 January@:; #http://site.ru/profile/rimski_h/|***РИММА ***|(35 years):; #http://site.ru/profile/salma81/|Salma Turman|(37 years):; #http://site.ru/profile/natali2602777/|Natalia Sagaidakova|(34 years)@25.08.2017@:; #http://site.ru/profile/dimazubkov/|Дмитрий Зубков|(43 years | Ганновер, Германия)@ 6 January@:; #http://site.ru/profile/www.max/|Максим Спиваченко|(32 years | Астана, Казахстан)@ 7 January@:; #http://site.ru/profile/a-zhubanazarov/|ахмет жубаназаров|(56 years)@ 6 February@:; #http://site.ru/profile/jildiz22/|jildiz ahmedova|(37 years | Бишкек, Киргизия (Кыргызстан))@30.04.2017@:; #http://site.ru/profile/saule1965/|JGS 807|(52 years)@30 January@:; #http://site.ru/profile/shegai2003/|Александр Шегай|@12.09.2017@:; #http://site.ru/profile/vilora/|Valery Kovzelev|(Хайфа, Израиль)@30.12.2017@:;В чем может быть проблема?
-
Не получается сортировать список
Это главная проблема?
Получил каждый текст с сайта с помощью xpath
Полученный список объединил в строку без разделителя в полученном тексте был разделитель ";" с помощью "Разделить строку" разделил отдельно по строкамА зачем?
теперь нужно в каждой строке заменить содержимое с помощью регулярки
Заменить содержимое в строке из списка? Или у вас просто строка с переносом строки?
регулярки будут разные чтоб под каждую строку совпадали
Под каждую строку отдельную регулярку?
#http://site.ru/profile/stein_sv/|Станислав Гудзенко|@ 8 January@:;Это необходимый, конечный результат?
-
@Fox Конечный результат должен быть такой
Регулярное выражение\#http://site\.ru/(.*)/(.*)/\|(.*)\ (.*)\|@(.*)@: - #http://site.ru/profile/stein_sv/|Станислав Гудзенко|@ 8 January@:; Заменить на \1-\2-\3-\4-\5 - в итоге должно быть так profile/stein_sv-Станислав Гудзенко- 8 JanuaryРегулярки разные будут потому строки разные в одной строке нет возраста в другом города а в некоторых даже даты чтобы в дальнейшем фильтровать через excel нужно ставить разделители "-" если даже нет даты или возраста
я не смог регулярные выражения применить в полученный список изза этого пришлось объединить в строку
-
@Fox said in Помогите с регуляркой:
теперь нужно в каждой строке заменить содержимое с помощью регулярки
Заменить содержимое в строке из списка? Или у вас просто строка с переносом строки?
да я сделал сперва из списка в строку потом в строке сделал перенос строки для применения регулярных выражений так как по другому вроде для списка регулярки применить не возможно для списка придется использовать for а это долго может я ошибаюсь но у меня не получалось с помощью регулярок заменить текст на всех строках в списке
-
@Fox said in Помогите с регуляркой:
Не получается сортировать список
Это главная проблема?
Главная проблема не получается применить регулярку в notepad++ работает регулярка без проблем а в bas на полученный список из сайта не работает а если список полученный из сайта скопировать в ручную и обратно поставить на переменную или в шаблон то работает регулярка
-
@Fox said in Помогите с регуляркой:
Получил каждый текст с сайта с помощью xpath
Полученный список объединил в строку без разделителя в полученном тексте был разделитель ";" с помощью "Разделить строку" разделил отдельно по строкамА зачем?
что зачем? я не использую запятую как разделитель потому что в самом строке тоже есть запятые
-
@GamiD Ух ну и огород..
Регулярки разные будут потому строки разные в одной строке нет возраста в другом города а в некоторых даже даты
Регулярку проще сделать универсальную, чтобы всё забирало и сразу.
чтобы в дальнейшем фильтровать через excel нужно ставить разделители "-" если даже нет даты или возраста
Разделитель для excel лучше использовать \t - обозначает символ табуляции.
я не смог регулярные выражения применить в полученный список изза этого пришлось объединить в строку
да я сделал сперва из списка в строку потом в строке сделал перенос строки для применения регулярных выражений так как по другому вроде для списка регулярки применить не возможноДля применения регулярки к списку, можно использовать функцию:
[[NEW_LIST]] = [[PIC_URL_TO_DOWNLOAD]].map(function(el){ return el.replace(/\\/g, "/") })для списка придется использовать for а это долго
Долго только в режиме записи, при запуске всё происходит мгновенно.
Главная проблема не получается применить регулярку в notepad++ работает регулярка без проблем а в bas на полученный список из сайта не работает а если список полученный из сайта скопировать в ручную и обратно поставить на переменную или в шаблон то работает регулярка
Очень рад за notepad++, но ваша регулярка:
\#http://site\.ru/(.*)/(.*)/\|(.*)\ (.*)\|@(.*)@:это жесть
:D, ещё раз говорю, проще и быстрее было скинуть проект, чем расписывать всё по пунктам.Полученный список объединил в строку без разделителя в полученном тексте был разделитель ";" с помощью "Разделить строку" разделил отдельно по строкам
что зачем? я не использую запятую как разделитель потому что в самом строке тоже есть запятые
Ну по факту, вы взяли список, перевели его в строку, а потом обратно в список, это всё ненужные телодвижения.
-
вот сам проект вывод должен быть такой
в результат должен выйти вот такой списокrick-Rick-Foreveryoung-44 года-Москва, Россия-14 января bobo-Dmitrii-Kornilov-41 год-Новая Зеландия- e_gosha-Игорь-Семендяев-Липецк, Липецкая обл., Россия-25.12.2017- digit-Vladimir-Yakushin-52 года- 3 февраля- krasinsky-Igor-Krasinsky-47 лет-Украина- illy-Илья-Гургуцов--- greygoose-Grey-Goose-47 лет-Пушкино, Московская обл., Россия- falc-Игорь-Соколов-51 год-Москва, Россия-06.07.2017 maratgal-Марат-Галимарданов-46 лет-Ноябрьск, Ямало-Ненецкий АО, Россия-12 января palegen-Леонид-Паньшин-55 лет-Рефтинский, Свердловская обл., Россия-вчера dimulka-Дмитрий-Болышев-44 года-Москва, Россия-вчера alsok-Alexandеr-Sokolov-48 лет-Израиль-05.06.2017 budkin-Сергей-Будкин-42 года-Санкт-Петербург, Россия-23.12.2017 mactep-D-G-41 год-Израиль-15.05.2017 irisha02-Ирина-Липатникова-40 лет-24.08.2017- kodmant-Дмитрий-К.-37 лет-Самара, Самарская обл., Россия-23 января b_a_w-Антон-Бузанов-37 лет-Москва, Россия-29.10.2017 kluj-Евгений-Клюжев-41 год-Иркутск, Иркутская обл., Россия-28.10.2017 pavlik_-Андрей-Морозов-44 года-Магнитогорск, Челябинская обл., Россия-11.05.2017 irakl-Irina-L.---я этот список сделал с помощью notepad++ с такими регулировками
http://site\.ru/profile/(.*)/\|(.*)\ (.*)\|\((.*)\)@(.*)@ http://site\.ru/profile/(.*)/\|(.*)\ (.*)\|\((.*)\ \|\ (.*)\)$ http://site\.ru/profile/(.*)/\|(.*)\ (.*)\|$ все это заменял на \1-\2-\3-\4-\5-\6 по очередино в bas Не работает почему та
-
@Fox said in Помогите с регуляркой:
Для применения регулярки к списку, можно использовать функцию:
[[NEW_LIST]] = [[PIC_URL_TO_DOWNLOAD]].map(function(el){
return el.replace(/\/g, "/")
})спасибо большое помог получилось сделать еще один вопрос
@Fox said in Помогите с регуляркой:
Регулярку проще сделать универсальную, чтобы всё забирало и сразу.
каким образом делается универсальная?
-
вот сам проект
Где проект?
я этот список сделал с помощью notepad++ с такими регулировками
но в bas Не работает почему таОсновная причина, почему регулярка где то работает, а в BAS не работает, в разном виде данных в BAS'e, строка, массив, объект..
Даже строка с переносом строки уже может не дать нужный результат:

Регулярка верная, поиск цифр с жадным алгоритмом по идее должен взять все цифры, но нет. Перенос строки берёт только \s - пробел.

-
@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(',');