споткнулось на таком :
"Note: Google’s hybrid workplace includes remote roles.
Remote location: Brazil."
Ну таки если нельзя полагаться на текст, то остаётся только пунктуация
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
Я к сожалению не могу полагаться на "locations", нет гарантии что это скрипт а не контентщик) А в таком случае мне может прилететь "locations, lacations, lacotion" etc ))) Я вообще не могу на текст полагаться, только на шаблон, что будет что то типа [city, state, country[,;]], причем в словах могут быть точки и пробелы - Vashingthon D.C.
Ну или если мы гарантированно знаем, что "префикс" строки содержит "location.*:", то делать а-ля https://regex101.com/r/LCOGoA/1
Но сплитить группу всё-равно придётся. На условном php
я уже писал - сплиты не подходят, нужно вычленить только регуляркой. Мой вариант работает, но искал еще варианты
Selenium это не парсер, на нем можно написать парсер, но эта штука исключительно для погромистов. Но вещь крутая для тех кто понимает.
написал выше - вообще никак не решает. Не нужно советовать варианты инык, нужна регулярка в чистом виде, без привязок к языку
В Питоне это решается так -
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))
а точно вывод исходника такой, или еще есть варианты?
попробуй)))
$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
ЕСли я начну разбирать по двоеточию, мне попадет мусорВ данном варианте мне ничего не должно прийти - это знак что локация заберется из другого тега
а зачем вам вообще такая портянка, смешивать штаты с городами в одном списке:
Los Angeles, CA, USA
город
California, USA
штат
Если я вам обьясню - это как то поможет написать регулярку? вкратце - такие бизнес требования. В дальнейшем при отправке на геосервис штат вырезается, если 3 элемента в локации.
покажите свои регулярки, а мы подкорректируем
Нет, так неинтересно, может у меня вообще неправильный подход, не хочу чтобы ориентировались на мои решения.
Я сначала забираю локации для офиса - для них своя регулярка, потом меняю точку в конце на точку с запятой и добавляю ремоте локации