Ссылка - Что означает это регулярное выражение?
Что это?
Это коллекция общих вопросов и ответов. Это также Вики Сообщества, поэтому каждый приглашен принять участие в его поддержке.
Почему это?
regex страдает от того, чтобы дать мне тип вопросов и плохие ответы без объяснения причин. Эта ссылка предназначена для предоставления ссылок на качественные вопросы и ответы.
Какой объем?
Эта ссылка предназначена для следующих языков: php, perl, javascript, python, ruby, java, .net.
Это может быть слишком широким, но эти языки имеют одинаковый синтаксис. Для конкретных функций есть тег языка за ним, например:
- Что такое балансировочные группы регулярных выражений? .сеть
1 ответ
FAQ по регулярным выражениям в стеке
Интернет-уроки
Кванторы
- Нулевой или-больше:
*
: жадный,*?
: неохотно,*+
:притяжательный падеж - Один или больше:
+
: жадный,+?
: неохотно,++
:притяжательный падеж ?
: необязательно (ноль или один)- Мин. / Макс. Диапазоны (все включено):
{n,m}
: между n & m,{n,}
: n-or-more,{n}
: точно n - Различия между жадным, неохотным (он же "ленивый", "неряшливый") и собственническим квантификатором:
- Жадность против неохотно против притяжательных квантификаторов
- Углубленное обсуждение различий между жадными и не жадными
- В чем разница между
{n}
а также{n}?
- Может ли кто-нибудь объяснить мне "Притяжательные кванторы" php, perl, java, ruby
- Эмуляция собственнических квантификаторов .net
- Ссылки без переполнения стека: Из Oracle, регулярно-expressions.info
Классы персонажей
- В чем разница между квадратными скобками и скобками?
[...]
любой персонаж,[^...]
: отрицается / любой символ, кроме[^]
соответствует любому символу,включая символы новой строки javascript[\w-[\d]]
/[a-z-[qz]]
: установить вычитание .net, xml-схема, xpath, JGSoft[\w&&[^\d]]
: установить пересечение java, ruby1.9+[[:alpha:]]
: Классы символов POSIX- Почему
[^\\D2]
,[^[^0-9]2]
,[^2[^0-9]]
получить разные результаты в Java? Джава - Стенография:
- Разряд:
\d
: цифра,\D
: нецифровой - Символ слова (буква, цифра, подчеркивание):
\w
: слово характер,\W
: несловесный символ - Пробелы:
\s
: пробел,\S
: непробельный
- Разряд:
- Unicode категории (
\p{L}, \P{L}
, так далее.)
Побег последовательности
- Горизонтальные пробелы:
\h
: пробел или табуляция,\t
: вкладка - Newlines:
- Отрицательные пробельные последовательности:
\H
: Не горизонтальный символ пробела,\V
: Не вертикальный символ пробела,\N
: Не символ перевода строки pcre php5 java-8 - Другой:
\v
: вертикальная вкладка,\e
: побег персонаж
Якоря
^
: начало строки / ввода,\b
: граница слова и\B
: несловесная граница,$
: конец строки / ввода\A
: начало ввода,\Z
: конец ввода php, perl, ruby\z
: самый конец ввода(\Z
в Python) .net, php, pcre, java, ruby, icu, swift, target-c\G
: начало матча php, perl, ruby
(Также см. "Информация о вкусе → Java → Функции вMatcher
")
группы
(...)
: группа захвата,(?:)
: группа без захвата\1
: обратная ссылка и ссылка на группу захвата,$1
: захват группы ссылок- Что делает подшаблон
(?i:regex)
имею в виду? - Что означает "Р" в
(?P<group_name>regexp)
имею в виду? (?>)
: атомная группа или независимая группа,(?|)
: сброс ветки- Именованные группы захвата:
- Ссылка на генеральную именованную группу захвата на
regular-expressions.info
- Ява:
(?<groupname>regex)
: Обзор и правила именования(ссылки не переполняются стеком) - Другие языки:
(?P<groupname>regex)
питон,(?<groupname>regex)
.net,(?<groupname>regex)
Perl,(?P<groupname>regex)
а также(?<groupname>regex)
PHP
- Ссылка на генеральную именованную группу захвата на
Lookarounds
- Lookaheads:
(?=...)
: положительный,(?!...)
: отрицательный - Утверждения назад:
(?<=...)
: положительный,(?<!...)
: отрицательный(не поддерживается JavaScript) - Посмотрите за пределы в:
- Посмотрите за альтернативы:
Модификаторы
- Большинство вкусов:
g
: глобальный,i
: без учета регистра,u
: unicode,x
: пробельные-продлен c
: текущая позиция perle
: выражение php perlo
: однажды рубинm
: многострочный php perl python javascript .net java,m
: (не) многострочный рубинs
: одна строка(не поддерживается javascript или ruby),s
обходной путь JavaScriptS
: изучение phpU
: ungreedy php r- Как преобразовать preg_replace e в preg_replace_callback?
- Что такое встроенные модификаторы?
- Что такое '?-Mix' в регулярном выражении Ruby
Другой:
|
: оператор чередования (ИЛИ),.
любой персонаж,[.]
: буквальная точка- Какие специальные символы должны быть экранированы?
- Контрольные глаголы ( php и perl):
(*PRUNE)
,(*SKIP)
,(*FAIL)
а также(*F)
- только php:
(*BSR_ANYCRLF)
- только php:
- Рекурсия ( php и perl):
(?R)
,(?0)
а также(?1)
,(?-1)
,(?&groupname)
Общие задачи
- Получите строку между двумя фигурными скобками:
{...}
- Сопоставьте (или замените) образец кроме случаев s1, s2, s3...
- Как найти все идентификаторы видео YouTube в строке с помощью регулярных выражений?
- Проверка:
- Интернет: адреса электронной почты, URL-адреса(хост / порт: альтернативные и регулярные выражения), пароли
- Числовой: число, минимальные и максимальные диапазоны (например, 1-31), номера телефонов, дата
- Разбор HTML с помощью regex: см. "Общая информация> Когда не использовать Regex"
Продвинутый Regex-Fu
- Строки и числа:
- Регулярное выражение для соответствия строке, которая не содержит слова?
- Как этот PCRE паттерн обнаруживает палиндромы?
- Сопоставьте строки, длина которых равна четвертой степени
- Как это регулярное выражение находит треугольные числа?
- Как определить, является ли число простым с регулярным выражением?
- Как сопоставить средний символ в строке с регулярным выражением?
- Другой:
- Как мы можем сопоставить ^n b^n с регулярным выражением Java?
- Соответствие вложенным скобкам
- "Вертикальное" сопоставление регулярных выражений в "изображении" ASCII
- Список часто задаваемых вопросов о регулярных выражениях на Code Golf
- Как сделать так, чтобы два квантификатора повторялись одинаковое количество раз?
- Регулярное выражение, которое невозможно сопоставить:
(?!a)a
- Match / удалить / заменить
this
кроме случаев А, В и С - Сопоставить вложенные скобки с регулярным выражением без использования рекурсии или балансировки?
Информация о вкусе
(За исключением отмеченных*
, этот раздел содержит ссылки не переполнения стека.)
- Джава
- Официальная документация: Pattern Javadoc, учебник Oracle по регулярным выражениям
- Различия между функциями в
java.util.regex.Matcher
:matches()
): Совпадение должно быть привязано как к input-start, так и к -endfind()
): Совпадение может быть где угодно во входной строке (подстроки)lookingAt()
: Совпадение должно быть привязано только к input-start- (Для анкеров в целом, см. Раздел "Якоря")
- Единственный
java.lang.String
функции, которые принимают регулярные выражения:matches(s)
,replaceAll(s,s)
,replaceFirst(s,s)
,split(s)
,split(s,i)
- * (Упрямое и) подробное обсуждение недостатков и отсутствующих функций в
java.util.regex
- .СЕТЬ
- Официальная документация:
- Механизм ускорения регулярных выражений: общий синтаксис, синтаксис Perl(используется TextPad, Sublime Text, UltraEdit, ...???)
- Общая информация JavaScript 1.5 и объект RegExp
- .СЕТЬ MySQL оракул Perl5 версия 18.2
- PHP: шаблонный синтаксис,
preg_match
- Python: операции с регулярными выражениями,
search
противmatch
с практическими рекомендациями - Splunk: терминология регулярных выражений и синтаксис и команда регулярных выражений
- Tcl: синтаксис регулярных выражений, man-страница,
regexp
команда - Visual Studio найти и заменить
Основная информация
(Ссылки помечены*
не являются ссылками переполнения стека.)
- Другие общие ресурсы документации: изучение регулярных выражений, * https://www.regular-expressions.info/, * запись в Википедии, * RexEgg, Open-Directory Project
- ДФА против НФА
- Создание строк, соответствующих регулярному выражению
- Книги: Регулярные выражения Джеффри Фридла
- Когдане следует использовать регулярные выражения:
- Некоторые люди, сталкиваясь с проблемой, думают: "Я знаю, я буду использовать регулярные выражения". Теперь у них две проблемы.(сообщение в блоге, написанное основателем Stack Overflow)*
- Не используйте регулярные выражения для анализа HTML:
- Не Пожалуйста, только не
- Ну, может быть... если выдействительно настроены(другие ответы на этот вопрос тоже хороши)
Примеры регулярных выражений, которые могут привести к сбою движка регулярных выражений
Инструменты: тестеры и объяснения
(Этот раздел содержит ссылки не переполнения стека.)
Онлайн(* включает тестер замены, + включает тестер разделения):
- Debuggex(также есть хранилище полезных регулярных выражений) javascript, python, pcre
- * Регулярные выражения 101 php, pcre, python, javascript
- Regex Pal, регулярные выражения.info javascript
- Рубиновый рубин RegExr Regex Hero dotnet
- * + http://regexstorm.net/tester .net
- * RegexPlanet: Java Java, Go go, Haskell haskell, JavaScript javascript, .NET dotnet, Perl perl php PCRE php, Python python, Ruby ruby, XRegExp xregexp
freeformatter.com
xregexp- * +
regex.larsolavtorvik.com
php PCRE и POSIX, javascript - Перекрасить javascript ruby .net
Не в сети:
- Microsoft Windows: RegexBuddy (анализ), RegexMagic (создание), Expresso (анализ, создание, бесплатно)