Что такое некоторые самые полезные регулярные выражения для программистов?

Хороший вопрос.

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

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

Ищут функциональное программирование и понятие чистоты для получения дополнительной информации о философии. Чем больше Вы храните на стеке вызовов (параметрические усилители, Вы являетесь передающими к методам) в противоположность предоставлению доступа к ним через ссылки, такие как наборы или статически доступные объекты, тем более чиста Ваша программа и менее подверженное условиям состязания, которыми Вы будете. С большим количеством мультиядер в эти дни эта тема более важна.

Также неизменность уменьшает сумму возможностей в программе, которая уменьшает потенциальную сложность и потенциал для ошибок.

17
задан 2 revs 20 September 2009 в 09:08
поделиться

10 ответов

Примеры регулярных выражений для

Ввод десятичных знаков

  1. Положительные целые числа ^ \ d + $

  2. Отрицательные целые числа ^ - \ d + $

  3. Целое число ^ -? \ d + $

  4. Положительное число ^ \ d * \.? \ d + $

  5. Отрицательное число ^ - \ d * \.? \ d + $

  6. Положительное число или Отрицательный номер ^ -? \ D * \.? \ D + $

  7. Номер телефона ^ \ +? [\ D \ s] {3,} $

  8. Телефон с кодом ^ \ +? [\ d \ s] + \ (? [\ d \ s] {10,} $

  9. Год 1900-2099 ^ (19 | 20) \ d {2} $

  10. Дата (дд мм гггг, д / м / гггг и т. д.)

     ^ ([1-9] | 0 [1-9] | [12] [0-9] | 3 [01]) \ D ([ 1-9] | 0 [1-9] | 1 [012]) \ D (19 [0-9] [0-9] | 20 [0-9] [0-9]) $
    

IP v4:

    ^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$

Ввод по алфавиту

  • Личное имя ^ [\ w. '] {2,} (\ s [\ w.'] {2,}) + $
  • Имя пользователя ^ [\ w \ d _.] {4,} $
  • Пароль не менее 6 символов ^. {6,} $
  • Пароль или пустой ввод ^. {6,} $ | ^ $
  • электронная почта ^ [_] * ([a-z0-9] + (\. | _ *)?) + @ ([Az] [a-z0-9 -] + ( \. | - * \.)) + [az] {2,6} $
  • домен ^ ([az] [a-z0-9 -] + (\. | - * \.)) + [az] {2,6} $

Другие регулярные выражения - Не найдено совпадений ^ $ - Соответствует пустому вводу ^ \ s \ t * $ - Соответствует новой строке [\ r \ n] | $ - Соответствует пробелу ^ \ s + $ - Соответствующий URL = ^ http \: \ / \ / [a-zA-Z0-9 .-] + \. [A-zA-Z] {2,3} $

35
ответ дан 30 November 2019 в 10:22
поделиться

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

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

Сопоставление числа с плавающей запятой. Также иллюстрирует распространенную ошибку сделать все в обычном выражение необязательно.

Соответствие адресу электронной почты. Есть много споров о том, что такое правильное регулярное выражение для соответствия адресам электронной почты. Это прекрасный пример того, что вам нужно точно знать, что вы пытаясь сопоставить (а что нет), и что всегда есть компромисс между сложностью регулярного выражения и точностью.

Соответствие допустимым датам. Обычный выражение, которое соответствует 31-12-1999, но а не 31-13-1999.

Поиск или проверка кредитной карты Номера. Подтвердите номера кредитных карт введен в форму заказа. найти номера кредитных карт в документах для аудит безопасности.

И еще много-много-много других возможных приложений.

4
ответ дан 30 November 2019 в 10:22
поделиться

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

Например, представьте себе эту проблему: "Рисунок out, если строка заканчивается пробелом. " Здесь можно было бы использовать регулярное выражение , но если вы используете C #, этот код будет намного быстрее:

bool EndsWithWhitespace(string s)
{
    return !string.IsNullOrEmpty(s) && char.IsWhiteSpace(s[s.Length - 1]);
}

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

5
ответ дан 30 November 2019 в 10:22
поделиться
  • Адрес электронной почты
  • Веб-сайт
  • Пути к файлам
  • Номера телефонов / факс / почтовый индекс и другие номера, используемые в бизнесе (химические номера и т. Д.)
  • содержимое файла (проверьте, может ли файл быть допустимым XML-файлом, ...)
  • изменение кода и форматирование (с заменой)
  • типов данных (GUID, синтаксический анализ целых чисел, ...)
  • . ..
3
ответ дан 30 November 2019 в 10:22
поделиться

До закрывающего тега

([^<]*)

Серьезно. Я слишком часто использую комбинации этого способа для удобства ... Мы все должны отказаться от regex: en для синтаксических анализаторов, тем более что для них есть хороший стиль грамматики, похожий на регулярное выражение.

3
ответ дан 30 November 2019 в 10:22
поделиться

Что ж ... Мне кажется, ваш вопрос неверен. Похоже, вы спрашиваете о регулярных выражениях, которые могут / должны быть такой же или почти такой же частью кода, как математические операторы. На самом деле, если ваш код повсеместно зависит от регулярных выражений, вы, вероятно, делаете что-то очень неправильно. Для повсеместного использования во всем коде вы хотите использовать структуры данных, которые лучше определены и более эффективны для работы, чем строки, управляемые регулярными выражениями.

Самое близкое к тому, о чем вы просите, было бы много смысла для меня будет что-то вроде / \ s + / , используемого для разделения строк на произвольное количество пробелов.

2
ответ дан 30 November 2019 в 10:22
поделиться
  1. Эл. Почта
  2. URL-адрес веб-сайта
  3. Номера телефонов
  4. Почтовый индекс
  5. Буквенно-цифровой, (имя пользователя состоит из буквенного числа и начинается только с буквенного символа
  6. IP-адрес
1
ответ дан 30 November 2019 в 10:22
поделиться

Это немного похоже на вопрос ' какие слова наиболее полезны для программистов? »

Это зависит от того, для чего вы собираетесь их использовать, и от того, на каком языке. И вы не сказали .

Некоторым программистам не нужно беспокоиться о сопоставлении адресов электронной почты, номеров телефонов, почтовых индексов и IP-адресов.

Моя копия

Mastering Regular Expressions, O Рейли, 3-е издание, 2006 г.

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

Это отличный справочник, но мне показалось, что второе издание более читабельно.

В моей копии

Mastering Regular Expressions, O'Reilly, 3rd Edition, 2006

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

Это отличный справочник, но мне показалось, что второе издание более читабельно.

В моей копии

Mastering Regular Expressions, O'Reilly, 3rd Edition, 2006

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

Это отличный справочник, но мне показалось, что второе издание более читабельно.

2
ответ дан 30 November 2019 в 10:22
поделиться

Как они могут помочь мне в повседневных делах?

Ежедневное использование для программистов может включать

  • поиск / замену образцов данных для целей тестирования
  • поиск в файлах журнала для шаблонов строк (например, исключения)
  • поиск в структуре каталогов файлов определенного введите (это просто, как dir * .txt )

, чтобы назвать лишь несколько

1
ответ дан 30 November 2019 в 10:22
поделиться

Это будет полностью зависеть от того, в каком домене вы работаете. Для некоторых это будет телефон номера и SSN и другие, это будут адреса электронной почты, IP-адреса, URL-адреса. Самое важное - знать, когда вам нужно регулярное выражение, а когда нет. Например, если вы пытаетесь проанализировать данные из файла XML или HTML, обычно лучше использовать библиотеку, специально разработанную для анализа этого содержимого, чем пытаться написать что-нибудь самостоятельно.

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

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

1
ответ дан 30 November 2019 в 10:22
поделиться
Другие вопросы по тегам:

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