Регулярка для поиска данных в тексте.

1 234
C
На сайте с 22.08.2012
Offline
106
#21
Sly32 #:

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

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

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

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

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
D
На сайте с 08.10.2006
Offline
194
#22

Мне тоже последнее время очень редко требовались регулярки, и тут понадобилось...

Решил попробовать ChatGPT. Первое время туго получалось, но потом руку набил с запросами (промтами) и пошло дело.

То же самое с переводами строк на другие языки. Если нужно одновременно переводить только на один язык, то гугл транслита хватит с лихвой, но если нужно делать перевод одной и той же строки сразу на несколько языков, то опять же удобнее  ChatGPT

пользуйтесь!

https://chat.openai.com/

Разработка сайтов от KAstudio.ru ( https://kastudio.ru/ )
S3
На сайте с 29.03.2012
Offline
319
#23
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

C
На сайте с 22.08.2012
Offline
106
#24
Sly32 #:

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

Вообще проблем не вижу (15, 16 выборки) - https://regex101.com/r/6hfgak/1

Но, в целом, для снижения false positive лучше сделать так -  https://regex101.com/r/yNZTpQ/1

Числа экспериментально подберите.

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
S3
На сайте с 29.03.2012
Offline
319
#25
chaturanga #:
Но, в целом, для снижения false positive лучше сделать так -  https://regex101.com/r/yNZTpQ/1

споткнулось на таком :


"Note: Google’s hybrid workplace includes remote roles.

Remote location: Brazil."

C
На сайте с 22.08.2012
Offline
106
#26
Sly32 #:

споткнулось на таком :


"Note: Google’s hybrid workplace includes remote roles.

Remote location: Brazil."

Также проблем не вижу.

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

14 и 17 выборки.

Может какие-то спецсимволы есть в исходном тексте?

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
C
На сайте с 22.08.2012
Offline
106
#27

Как альтернативный вариант - https://regex101.com/r/7S9KSB/1

Результат должен быть примерно тот же, но запрос будет более ресурсоёмким за счёт дополнительной опрежающей проверки.

Выборка будет без подгрупп, но с "концевыми" знаками препинания и пробелом.

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
S3
На сайте с 29.03.2012
Offline
319
#28
chaturanga #:
Может какие-то спецсимволы есть в исходном тексте?

My bad)) Я убрал экоанирование точки - прочитал что в скобках оно не нужно, но после этого поломалось. И еще - этот паттерн подразумесает любые повторения слов - : word, word, Word word; 

а можно сделать так чтоб не более  3-х слов попадало и только если  кэпитал леттер? То есть:

New York, NY, USA ;- попало

New York, Florida, NY, USA; - не попало

new york, NY, usa; не попало

C
На сайте с 22.08.2012
Offline
106
#29
Sly32 #:

My bad)) Я убрал экоанирование точки - прочитал что в скобках оно не нужно, но после этого поломалось. И еще - этот паттерн подразумесает любые повторения слов - : word, word, Word word; 

а можно сделать так чтоб не более  3-х слов попадало и только если  кэпитал леттер? То есть:

New York, NY, USA ;- попало

New York, Florida, NY, USA; - не попало

new york, NY, usa; не попало

Заглавная буква проверяется и в обычном варианте  https://regex101.com/r/F2WzQJ/1 и с опережающей проверкой  https://regex101.com/r/3IfTHj/1

А вот с учётом 3-х запятых... Теоретически можно, но это будет либо две тернарки, либо 2 ИЛИ. Стоимость исполнения вырастет катастрофически. Может какие-то вариации комбинирования опережающих проверок с тернаркой, но тоже будет очень сложная конструкция.

Даже пытаться не стану -  да уже за те варианты которые предложены выше надо отрывать руки - в продакшине такому не место.

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.
S3
На сайте с 29.03.2012
Offline
319
#30
chaturanga #:

А вот с учётом 3-х запятых... Теоретически можно, но это будет либо две тернарки, либо 2 ИЛИ. Стоимость исполнения вырастет катастрофически. Может какие-то вариации комбинирования опережающих проверок с тернаркой, но тоже будет очень сложная конструкция.

Даже пытаться не стану -  да уже за те варианты которые предложены выше надо отрывать руки - в продакшине такому не место.

Тебе и так огромное спасибо)))  Я пока не вижу вариантов других с учетом криворукости контентщиков я не могу полагаться на сплит.  На фоне остального алгоритма тут в принципе стоимость исполнения неважна, наоборот приходится замедлять, чтобы успело все прогрузиться. я и делал два разных регекспа и они работают, но твои варианты прям красота лаконичности, многому научился) 

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий