Sly32

Рейтинг
367
Регистрация
29.03.2012
Любой, на котором есть Питон версии выше 3
chaturanga #:

Ну таки если нельзя полагаться на текст, то остаётся только пунктуация

https://regex101.com/r/KCVie5/1

Но при таком подходе сплит однозначно лучше регекспа.

Круто, похоже это то что надо. Натравлю на 2000 страниц, потом отпишусь о результатах

UPD:

Вот такую строку не смог разобрать:

Note: By applying to this position you will have an opportunity to share your preferred working location from the following: New York, NY, USA; San Francisco, CA, USA.

результат:

By applying to this position you will have an opportunity to share your preferred working location from the following; New York, NY, USA; San Francisco, CA, USA

VadimGen #:
'/location.*?:([a-zA-Z ,;\.]*)[\.;]/'

Я к сожалению не могу полагаться на  "locations",  нет гарантии что это скрипт а не контентщик) А в таком случае мне может прилететь  "locations, lacations, lacotion" etc ))) Я вообще не могу на текст полагаться, только на шаблон, что будет что то типа [city, state, country[,;]], причем в словах могут быть точки и пробелы - Vashingthon D.C.

chaturanga #:

Ну или если мы гарантированно знаем, что "префикс" строки содержит "location.*:", то делать а-ля https://regex101.com/r/LCOGoA/1

Но сплитить группу всё-равно придётся. На условном php

я уже писал - сплиты не подходят, нужно вычленить только регуляркой. Мой вариант работает, но искал еще варианты

damn-doubleclick #:
A-Parser, Datacol, BAS, ZennoPoster, Selenium

Selenium это не парсер, на нем можно написать парсер, но эта штука исключительно для погромистов. Но вещь крутая для тех кто понимает.

dzthd #:
Регулярки? Эксплоде (сплит) по точке с запятой решит задачу.

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

В Питоне это решается так -

office_location = " ".join(re.findall(r"[\b\w\s.]+,\s[\w\s.]+,\s[\w\s.]+[;.]", location)).strip()
remote_location = " ".join(re.findall(r"\b\w{3,},\s\w+[;/.]", location))

VadimGen #:

а точно вывод исходника такой, или еще есть варианты?

попробуй)))

$matches = [];

preg_match_all('/(?<=: )([^:]+USA)\./', 'qwe: qwe: qweUSA.sdfd: sdffUSA.', $q);

$q = implode("; ", $q[1]);

Парсится 2000 страниц, локации могут быть какие угодно, например так:


Please submit your resume in English - we can only consider applications submitted in this language.

Note: Google’s hybrid workplace includes remote roles

Remote location: Brazil.


ЕСли я начну разбирать по двоеточию, мне попадет мусор
В данном варианте мне ничего не должно прийти - это знак что локация заберется из другого тега

Владимир #:

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

Los Angeles, CA, USA

город

California, USA

штат

Если я вам обьясню - это как то поможет написать регулярку? вкратце - такие бизнес требования. В дальнейшем при отправке на геосервис штат вырезается, если 3 элемента в локации.

Владимир #:

покажите свои регулярки, а мы подкорректируем

Нет, так неинтересно, может у меня вообще неправильный подход, не хочу чтобы ориентировались на мои решения.

Я сначала забираю локации для офиса - для них своя регулярка, потом меняю точку в конце на точку с запятой и добавляю ремоте локации

Yandex-007 #:

200 шагов это мало. Пробеги сначала 5 км. Перед бегом и сразу после бега измерь свой вес.

тебе пишет же человек что не может бегать! В таком случае лучше начать с ходьбы + силовые тренировки на пресс. Если вес и пузо уйдут - переходить на бег. Но с большим весом бег вообще не рекомендуется - ты в итоге просто убьешь колени.

Yandex-007 #:
Перед бегом и сразу после бега измерь свой вес.

Никакого смысла в этом нет от слова совсем. Во время бега у тебя уходит влага из организма, и ты не худеешь. Эффект жиросжигания проявляется не сразу. Если хочешь контролировать вес  - взвешиваться надо, допустим ежедневно в одно и тоже время. А в реальности для понимания достаточно взвешиваться раз в неделю, в один и тот же день и время - тогда получишь реальную картину. 

Кстати весы с термометром - жесть. Мрачный китайский гений, не могу обьяснить зачем там он)))

Всего: 7118