Тествайте регулярни изрази с подчертаване на съвпадения в реално време, валидиране на шаблони и обяснения на често срещани символи в regex. Запазвайте и повторно използвайте често използваните си шаблони с персонализирани етикети.
Въведете шаблон и тестов текст, за да видите резултатите
Въведете шаблон и тестов текст, за да видите резултатите
Няма запазени шаблони все още
.
Съвпада с всеки символ, освен нов ред\d
Съвпада с всяка цифра (0-9)\D
Съвпада с всяка не-цифра\w
Съвпада с всеки символ от дума (a-z, A-Z, 0-9, _)\W
Съвпада с всеки не-символ от дума\s
Съвпада с всеки символ на интервал\S
Съвпада с всеки не-интервален символ^
Съвпада с началото на реда$
Съвпада с края на реда*
Съвпада с 0 или повече от предходния символ+
Съвпада с 1 или повече от предходния символ?
Съвпада с 0 или 1 от предходния символ{n}
Съвпада точно с n от предходния символ{n,}
Съвпада с поне n от предходния символ{n,m}
Съвпада между n и m от предходния символ[abc]
Съвпада с всеки един от символите в скобите[^abc]
Съвпада с всеки символ, който не е в скобите(abc)
Групира множество токени заедно и улавя съвпадениетоa|b
Съвпада или с a, или с b\b
Съвпада с позиция на граница на думаТестера на регулярни изрази (regex) е основен инструмент за разработчици, анализатори на данни и всеки, който работи с обработка на текст. Този всеобхватен валидатор на шаблони за регулярни изрази ви позволява да създавате, тествате и усъвършенствате регулярни изрази в реално време, предоставяйки незабавна визуална обратна връзка за съвпаденията на шаблоните. Независимо дали валидирате имейл адреси, парсвате лог файлове или извличате специфични данни от текст, нашият тестер на регулярни изрази прави процеса на разработка и отстраняване на грешки по-бърз и интуитивен.
Регулярните изрази са мощни последователности за съвпадение на шаблони, които позволяват сложни текстови търсения, валидиране и манипулация. Въпреки това, синтаксисът им може да бъде сложен и предизвикателен за овладяване. Този тестер на шаблони за регулярни изрази опростява процеса, като подчертава съвпаденията, докато пишете, валидира синтаксиса на шаблона и ви позволява да запазвате често използвани шаблони за бъдеща справка.
Използването на нашия валидатор на регулярни изрази е просто и интуитивно. Следвайте тези стъпки, за да започнете:
Въведете шаблон на регулярния израз: Въведете вашия шаблон на регулярния израз в обозначеното поле за въвеждане. Инструментът валидира вашия шаблон в реално време, уведомявайки ви за всякакви синтактични грешки.
Изберете флагове за регулярни изрази: Изберете подходящи флагове за вашия шаблон:
g
(Глобален): Намерете всички съвпадения, вместо да спирате след първото съвпадениеi
(Без чувствителност към регистър): Направете шаблона без чувствителност към регистърm
(Много редове): Направете ^
и $
да съвпадат с началото/края на всеки редВъведете тестов текст: Въведете текста, с който искате да тествате вашия шаблон в областта за тестов текст.
Прегледайте резултатите в реално време: Докато пишете, инструментът автоматично:
Запазете полезни шаблони: За шаблони, които използвате често:
Копирайте резултатите: Използвайте бутона "Копирай съвпадения" за копиране на целия съвпадащ текст в клипборда за използване в други приложения.
Интерфейсът е разделен на две основни панели: панел за въвеждане, където въвеждате вашия шаблон и тестов текст, и панел за резултати, който показва съвпадения и информация за шаблона.
Регулярните изрази използват специални символи и последователности, за да определят шаблони за търсене. Ето ръководство за основните символи на regex, поддържани от нашия инструмент:
Символ | Описание | Пример | Съвпадения |
---|---|---|---|
. | Съвпада с всеки символ, с изключение на нов ред | a.c | "abc", "adc", "a1c" и др. |
\d | Съвпада с всяка цифра (0-9) | \d{3} | "123", "456", "789" и др. |
\D | Съвпада с всяка не-цифра | \D+ | "abc", "xyz" и др. |
\w | Съвпада с всеки символ от дума (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" и др. |
\W | Съвпада с всеки не-символ от дума | \W+ | "!@#", " + " и др. |
\s | Съвпада с всеки символ на интервал | a\sb | "a b", "a\tb" и др. |
\S | Съвпада с всеки не-интервален символ | \S+ | "abc", "123" и др. |
Символ | Описание | Пример | Съвпадения |
---|---|---|---|
^ | Съвпада с началото на реда | ^abc | "abc" в началото на реда |
$ | Съвпада с края на реда | abc$ | "abc" в края на реда |
\b | Съвпада с границата на дума | \bword\b | "word" като цяла дума |
Символ | Описание | Пример | Съвпадения |
---|---|---|---|
* | Съвпада с 0 или повече от предходния символ | a*b | "b", "ab", "aab" и др. |
+ | Съвпада с 1 или повече от предходния символ | a+b | "ab", "aab", "aaab" и др. |
? | Съвпада с 0 или 1 от предходния символ | colou?r | "color", "colour" |
{n} | Съвпада точно с n от предходния символ | a{3} | "aaa" |
{n,} | Съвпада с поне n от предходния символ | a{2,} | "aa", "aaa", "aaaa" и др. |
{n,m} | Съвпада с между n и m от предходния символ | a{2,4} | "aa", "aaa", "aaaa" |
Символ | Описание | Пример | Съвпадения |
---|---|---|---|
[abc] | Съвпада с всеки един от символите в скобите | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Съвпада с всеки символ, който не е в скобите | [^aeiou] | Всеки символ, освен "a", "e", "i", "o", "u" |
[a-z] | Съвпада с всеки символ в диапазона | [a-z] | Всеки малък буква |
Символ | Описание | Пример | Съвпадения |
---|---|---|---|
(abc) | Групира множество токени заедно и улавя съвпадението | (abc)+ | "abc", "abcabc" и др. |
a|b | Съвпада или с a, или с b | cat|dog | "cat", "dog" |
След като овладеете основите, можете да създавате по-сложни шаблони, за да решите сложни предизвикателства при обработката на текст:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
Този шаблон валидира имейл адреси, като осигурява, че те следват стандартния формат: име@домен.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
Този шаблон валидира URL адреси, включително тези с или без протокола http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
Този шаблон съвпада с телефонни номера в САЩ в различни формати: (123) 456-7890, 123-456-7890 или 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
Този шаблон валидира дати в формата YYYY-MM-DD, с основна валидация за диапазоните на месеците и дните.
Погледите напред и назад позволяват да се съвпадат шаблони само ако са последвани от или предшествани от друг шаблон:
a(?=b)
съвпада с "a", само ако е последвано от "b"a(?!b)
съвпада с "a", само ако не е последвано от "b"(?<=a)b
съвпада с "b", само ако е предшествано от "a"(?<!a)b
съвпада с "b", само ако не е предшествано от "a"Нашият тестер на регулярни изрази поддържа различни флагове, които модифицират начина, по който се съвпадат шаблони:
^
и $
да съвпадат с началото/края на всеки редРегулярните изрази имат множество практически приложения в различни области:
Валидиране на формуляри: Уверете се, че входовете на потребителите съвпадат с необходимите формати:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Парсинг на HTML: Извличане на специфични елементи или атрибути:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
Анализ на лог файлове: Извличане на информация от записи на логове:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
Парсинг на CSV: Обработка на стойности, разделени с запетаи, с потенциални полета в кавички:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
Намиране и замяна: Идентифициране на шаблони за замяна:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
Извличане на съдържание: Извличане на специфична информация от неструктуриран текст:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
Синтактично оцветяване: Идентифициране на езикови конструкции:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
Рефакториране на код: Намиране на шаблони, които трябва да бъдат актуализирани:
\.oldMethod\(
eval\(
Нашият тестер на регулярни изрази включва система за управление на шаблони, която ви позволява да запазвате и преизползвате вашите често използвани изрази:
Помислете за запазване на шаблони, които:
Когато запазвате шаблони, използвайте описателни етикети, които:
Организирайте вашите запазени шаблони по:
Докато нашият инструмент не поддържа директно споделяне на шаблони между потребители, можете:
Дори опитни разработчици срещат предизвикателства с регулярните изрази. Ето решения на често срещани проблеми:
Ако вашият шаблон показва грешка при валидиране:
Ако вашият regex е бавен или причинява забавяне на браузъра:
(a+)+
)Ако вашият шаблон съвпада с нежелан текст:
^
и $
), за да съвпадате с цели низове\b
) където е подходящоАко вашият шаблон не съвпада с очаквания текст:
i
)Въпреки че regex е мощен, не винаги е най-доброто решение за всяка задача по обработка на текст:
За прости текстови операции, вродените методи на низове често са по-ясни и по-ефективни:
String.indexOf()
за намиране на поднизовеString.startsWith()
и String.endsWith()
за проверка на границите на низоветеString.split()
за основна токенизацияЗа структурирани формати на данни, посветените парсери са по-надеждни:
За разбиране на значението на текста, а не само на шаблоните:
Обмислете алтернативи на regex, когато:
Регулярният израз (regex) е последователност от символи, която определя шаблон за търсене. Тези шаблони могат да се използват за търсене на низове, съвпадение и операции по манипулация на текст.
Тестерът на шаблони за регулярни изрази ви помага да разработвате и отстранявате грешки в регулярни изрази, като предоставя незабавна визуална обратна връзка за съвпадения, валидира синтаксиса на шаблона и ви позволява да експериментирате с различни шаблони и флагове, без да е необходимо да ги имплементирате в кода първо.
За да съвпаднете с буквални специални символи, които обикновено имат специално значение в regex, трябва да ги ескейпирате с обратна наклонена черта. Например, за да съвпаднете с буквална точка, използвайте \.
вместо просто .
.
.*
и .*?
в шаблон на regex?.*
е жаден квантификатор, който съвпада с колкото се може повече символи, докато .*?
е мързелив (нежаден) квантификатор, който съвпада с колкото се може по-малко символи. Това разграничение е важно, когато искате да намерите най-краткото съвпадение, а не най-дългото.
Докато основният синтаксис на regex е подобен в много езици, има фини разлики в имплементацията. Нашият тестер използва regex двигателя на JavaScript, който е съвместим с много уеб езици, но може да има разлики от regex в езици като Python, Java или Perl.
За да валидирате, че целият низ съвпада с шаблон, използвайте анкерите ^
в началото и $
в края на вашия regex. Например, ^[0-9]+$
ще съвпадне само с низове, които се състоят изцяло от цифри.
Групите за улавяне, създадени с кръгли скоби ()
, ви позволяват да извлечете специфични части от съвпаднатия текст. В нашия тестер можете да видите всички съвпадения, включително уловените групи. В програмиращите езици обикновено можете да получите достъп до тези уловки чрез индексиране на резултата от съвпадението.
За да подобрите ефективността на regex: бъдете специфични с класовете символи, избягвайте ненужните групи за улавяне (използвайте неуловими групи (?:...)
, когато е възможно), ограничете използването на погледи напред/назад, и избягвайте катастрофалните шаблони за обратно проследяване, като вложени квантификатори.
Чести грешки включват: не ескейпиране на специални символи, създаване на шаблони, които са твърде жадни, забравяне да анкерувате шаблони (с ^
и $
), и писане на прекалено сложни изрази, които са трудни за поддържане.
Регулярните изрази не са добре подходящи за парсинг на вложени структури като HTML или XML. Въпреки че можете да създадете шаблони на regex за просто съвпадение на HTML, обикновено е по-добре да използвате посветен парсер за сложна обработка на HTML.
Изпробвайте нашия тестер на шаблони за регулярни изрази днес, за да опростите задачите си по обработка на текст, да валидирате формати на вход и да извлечете значими данни от неструктуриран текст. Независимо дали сте начинаещ, който учи основите на регулярните изрази, или опитен разработчик, работещ по сложни съвпадения на шаблони, нашият инструмент предоставя функциите, от които се нуждаете, за да създавате, тествате и усъвършенствате вашите шаблони за regex ефективно.
Открийте още инструменти, които може да бъдат полезни за вашия работен процес