В которых случаях лучше для Использования регулярных выражений?

string today = DateTime.Today.ToString("M/d");
5
задан Guy Starbuck 7 November 2009 в 21:43
поделиться

7 ответов

Регулярные выражения - это форма сопоставления с образцом, которую можно применять к текстовому содержимому. Взять, к примеру, подстановочные знаки DOS? и * который вы можете использовать при поиске файла . Это своего рода очень ограниченное подмножество RegExp. Например, если вы хотите найти все файлы, начинающиеся с «fn», за которыми следуют от 1 до 4 случайных символов и заканчиваются «ht.txt», вы не можете сделать это с помощью обычных подстановочных знаков DOS. RegExp, с другой стороны, может обрабатывать этот и гораздо более сложные шаблоны.

Короче говоря, регулярные выражения - это способ эффективно

  • обрабатывать поиск данных
  • и заменять строки
  • обеспечивать расширенную обработку строк.

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

7
ответ дан 18 December 2019 в 07:30
поделиться

Когда вы пытаетесь найти / заменить / проверить сложные строковые шаблоны.

4
ответ дан 18 December 2019 в 07:30
поделиться

Я использую регулярные выражения при сравнении строк (preg_match), замене подстрок (sed, preg_replace), замене символов (sed, preg_replace), поиске строк в файлах (grep), разделении строк (preg_split ) и т. д.

Это очень гибкий и широко распространенный язык выражения шаблонов, и его очень полезно знать.

НО! Это как в покере: его очень легко научиться, но очень сложно освоить.

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

4
ответ дан 18 December 2019 в 07:30
поделиться

В некоторых случаях, если вам нужна более высокая производительность, вам следует избегать регулярных выражений в пользу написания кода. Примером этого является разбор очень больших файлов CSV.

2
ответ дан 18 December 2019 в 07:30
поделиться

Регулярные выражения - это dsl (язык домена) для синтаксического анализа текста. Так же, как xpath - это dsl для просмотра xml. По сути, это мини-язык внутри языка общего назначения. Вы можете добиться многого с помощью очень небольшого количества кода, потому что он предназначен для узкой цели. Очень часто регулярные выражения используются для проверки того, является ли строка адресом электронной почты, номером телефона, ssn и т. Д.

2
ответ дан 18 December 2019 в 07:30
поделиться

Регулярные выражения могут быть особенно полезны для проверки формата ввода произвольного текста. Конечно, они не могут проверить правильность данных, только их формат. И вы должны учитывать региональные различия для определенных типов значений (например, номеров телефонов или почтовых индексов). Но для случаев, когда допустимый ввод может быть определен как текстовый шаблон, регулярные выражения быстро выполняют проверку.

0
ответ дан 18 December 2019 в 07:30
поделиться

Если я вычеркну из вашего вопроса детали, относящиеся к домену, то получу следующее:

В вашем клиент-сервере RESTful приложение, клиент хранит локальную копию большого ресурса. Периодически клиенту необходимо проверять сервер, чтобы определить, актуальна ли его копия ресурса.

Маршалли предлагает использовать HTTP-кеширование, что IMO является хорошим подходом при условии, что это возможно. в пределах ограничений вашего приложения (например, системы аутентификации).

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

  • Анализ HTML
  • Анализ XML

В вышеупомянутых случаях синтаксический анализатор DOM почти всегда является лучшим выбором. Грамматики сложны, и существует слишком много граничных случаев, таких как вложенные теги.

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

2
ответ дан 18 December 2019 в 07:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: