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

1 234
WS
На сайте с 01.11.2008
Offline
148
#31
Sly32 #:
а можно сделать так чтоб не более  3-х слов попадало и только если  кэпитал леттер?
https://regex101.com/r/WZca81/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
330
#32

Прям вау! спасибо!

C
На сайте с 22.08.2012
Offline
111
#33

Интересный ход с незахватываемым "[A-Z][A-Za-z\s \.]"

Только стоимость жутко выросла.

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

ИЛИ также лучше заменить на символьные классы - сложность их раскрытия много меньше альтернативной ветки.

[\s ]* - избыточность, хотя интерпретатор должен сам её устранить

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

Понизили стоимость с 4361 до 1275.

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
111
#34
Sly32 #:

Прям вау! спасибо!

Поймите - это всё из области ненормального программирования. Регулярки - это зло. Стремитесь от них избавиться везде, где есть возможность.

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте ©

WS
На сайте с 01.11.2008
Offline
148
#35
chaturanga #:

Поймите - это всё из области ненормального программирования. Регулярки - это зло. Стремитесь от них избавиться везде, где есть возможность.

Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте ©

я то думал, что там за точки, а это просто пробелы так сайт подсвечивает, да, вам удалось оптимизировать лучше, единственное, что 14 наверное будет маловато, можно с запасом поставить 34:

(?<=[:;]) *(?:[A-Z][A-Za-z .]{1,34}[, ]*){1,3}(?=[;.])

на счёт того, что это не оптимально, не соглашусь, я думаю ТС будет обрабатывать на бэкенде, а не налету, а раз так, то и особо заморачиваться со скоростью работы не стоит, главное, чтобы помогало в работе

C
На сайте с 22.08.2012
Offline
111
#36
Владимир #:

на счёт того, что это не оптимально, не соглашусь, я думаю ТС будет обрабатывать на бэкенде, а не налету, а раз так, то и особо заморачиваться со скоростью работы не стоит, главное, чтобы помогало в работе

Я не про скорость в данном случае (хотя и про неё тоже), а про дальнейшее сопровождение кода и то, что регулярки - это самый простой способ выстрелить себе в ногу.

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

Я лет 15 назад админил большой проект с 1000+ разных сайтов и их конфиги nginx хранились в виде файлов. Довольно часто в них нужно было вносить групповые правки. Вместо того чтобы сделать систему для хранения конфигов в БД и формировать их при необходимости я их "правил" регулярками с помощью grep, sed и awk. 6 лет это всё обрастало дикими regexp'ами c Backreferences, POSIX-классами и разными вариациями Extended- и PCRE- синтаксисов. И когда пришло время передать это другому админу, я понял, что и сам давно не понимаю как это работает.

С тех пор у меня от них глаз дёргается :)

WS
На сайте с 01.11.2008
Offline
148
#37
chaturanga #:

Я не про скорость в данном случае (хотя и про неё тоже), а про дальнейшее сопровождение кода и то, что регулярки - это самый простой способ выстрелить себе в ногу.

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

Я лет 15 назад админил большой проект с 1000+ разных сайтов и их конфиги nginx хранились в виде файлов. Довольно часто в них нужно было вносить групповые правки. Вместо того чтобы сделать систему для хранения конфигов в БД и формировать их при необходимости я их "правил" регулярками с помощью grep, sed и awk. 6 лет это всё обрастало дикими regexp'ами c Backreferences, POSIX-классами и разными вариациями Extended- и PCRE- синтаксисов. И когда пришло время передать это другому админу, я понял, что и сам давно не понимаю как это работает.

С тех пор у меня от них глаз дёргается :)

с этим не поспоришь, то, что делал несколько лет назад забываешь намертво, если не работаешь регулярно, приходится вникать и разбираться, регулярки для ленивых)))
C9
На сайте с 10.09.2021
Offline
26
#38
Красиво!
S3
На сайте с 29.03.2012
Offline
330
#39
chaturanga #:
В любом случае сплиты и т.п. существенно быстрее, надёжнее и читабельнее.

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

1 234

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