Referencja-co oznacza ten regex?
Co to jest?
Jest to zbiór wspólnych pytań i Odpowiedzi. jest to również Wiki społeczności, więc wszyscy są zaproszeni do udziału w jej utrzymaniu.
Dlaczego tak jest?Jaki jest zakres?
Odniesienie to jest przeznaczone dla następujących języków: php, perl, javascript , python, ruby, java, . NET .
Może to być zbyt szerokie, ale te języki mają tę samą składnię. Dla konkretnych funkcji znajduje się za nim znacznik języka, przykład:
- czym są grupy równoważenia wyrażeń regularnych? . NET
1 answers
The Stack Overflow Regular Expressions FAQ
Poradniki Online
Kwantyfikatory
- Zero-or-more:
*
:greedy,*?
:niechętnie,*+
:zaborczy - One-or-more:
+
:greedy,+?
:niechętny ,++
:zaborczy -
?
:opcjonalne (zero-or-one)
Zakres Min/max (all inclusive): - różnice między chciwym, niechętnym (aka "leniwy", "ungreedy") a zaborczym kwantyfikatorem:
- chciwi kontra niechętni kontra dzierżawcy
- dogłębna dyskusja na temat różnic między chciwością a nie chciwy
- Jaka jest różnica między
{n}
A{n}?
- czy ktoś może mi wyjaśnić dzierżawcze kwantyfikatory? php, perl, java, ruby
- emulowanie kwantyfikatorów dzierżawczych . NET
- odniesienia do przepełnienia stosu: z Oracle , regular-expressions.info
{n,m}
:między n I m, {n,}
:n-lub-więcej, {n}
:dokładnie n
Klasy Znaków
- Jaka jest różnica między nawiasami kwadratowymi a nawiasami?
-
[...]
: dowolny znak,[^...]
: negowany / dowolny znak ale -
[^]
pasuje do dowolnego znaku łącznie z newlines javascript -
[\w-[\d]]
/[a-z-[qz]]
: Ustaw odejmowanie . NET, XML-schema, xpath , JGSoft -
[\w&&[^\d]]
: Ustaw skrzyżowanie java, ruby 1.9+ -
[[:alpha:]]
:klasy znaków POSIX -
dlaczego
[^\\D2]
,[^[^0-9]2]
,[^2[^0-9]]
uzyskać różne wyniki w Javie? java - Stenografia:
- cyfra:
\d
:cyfra,\D
:niecyfrowe - znak wyrazu (litera, cyfra, podkreślenie):
\w
:znak wyrazu,\W
:znak nie-wyrazowy - Whitespace:
\s
:whitespace,\S
:nie-whitespace
- cyfra:
- kategorie Unicode (
\p{L}, \P{L}
, itd.)
Sekwencje Ucieczki
- pozioma Biała spacja:
\h
:spacja lub karta,\t
:tab - Newlines:
- negowane sekwencje białych znaków:
\H
:nie poziome białe znaki,\V
: Nie pionowe białe znaki,\N
: Nie linia feed znak pcre php5 java-8 - Inne:
\v
:zakładka pionowa,\e
:Ucieczka znak
Kotwy
-
^
:początek linii / wejścia,\b
:granica wyrazów i\B
: granica wyrazów,$
:koniec linii / wejście -
\A
:początek wejścia,\Z
: koniec wejścia php, perl, ruby -
\z
:sam koniec wejścia (\Z
w Pythonie) . NET, php , pcre, java, ruby, OIOM, swift, objective-c -
\G
:początek meczu php, perl, ruby
(Zobacz też " informacje o Javie → funkcje w Matcher
")
Grupy
-
(...)
:Grupa przechwytywania,(?:)
:brak przechwytywania Grupa -
\1
:w związku z tym, że nie jest to możliwe, nie jest to możliwe.]} - co oznacza podpunkt
(?i:regex)
? - co oznacza " P " w
(?P<group_name>regexp)
? -
(?>)
:Grupa atomowa lub Grupa niezależna,(?|)
:Reset gałęzi - nazwane grupy przechwytywania:
- ogólne o nazwie Grupa odniesienia w
regular-expressions.info
-
java:
(?<groupname>regex)
: przegląd i zasady nazewnictwa (Nie-Stack Overflow links) - inne języki:
(?P<groupname>regex)
python,(?<groupname>regex)
. NET,(?<groupname>regex)
perl,(?P<groupname>regex)
oraz(?<groupname>regex)
php
- ogólne o nazwie Grupa odniesienia w
Lookarounds
- Lookaheads:
(?=...)
:pozytywne ,(?!...)
:ujemne - Lookbehinds:
(?<=...)
:pozytywna,(?<!...)
:negative (not supported by javascript ) - Lookbehind ogranicza w:
- Lookbehind:
Modyfikatory
- Większość smaków:
g
:global,i
:wielkość liter,u
:unicode,x
:whitespace-extended -
c
:aktualna pozycja perle
:wyrażenie php perlo
:once ruby -
m
:multiline php perl python javascript . NET java,m
:(non) multiline ruby -
s
:pojedynczy wiersz (nieobsługiwany przez javascript lub ruby),s
obejście javascript -
S
:badanie phpU
:ungreedy php r - Jak przekonwertować preg_replace e na preg_replace_callback?
- co to są modyfikatory liniowe?
- Co to jest?-mix ' w wyrażeniu regularnym Ruby
Inne:
-
|
:Operator alternacji (lub),.
: dowolny znak,[.]
:literalna kropka znak - jakie znaki specjalne muszą zostać usunięte?
- Control verbs ( php i perl):
(*PRUNE)
,(*SKIP)
,(*FAIL)
i(*F)
-
php tylko:
(*BSR_ANYCRLF)
-
php tylko:
- Recursion ( php i perl):
(?R)
,(?0)
oraz(?1)
,(?-1)
,(?&groupname)
Wspólne Zadania
- Get a string between two curly braces:
{...}
- Dopasuj (lub zamień) wzór z wyjątkiem sytuacji s1, s2, S3...
- jak znaleźć wszystkie identyfikatory wideo YouTube w ciągu znaków za pomocą wyrażenia regularnego?
- Walidacja:
- Internet: adresy e-mail, adresy URL (host/port: regex i non-regex alternatywy), hasła
- numeryczny: liczba, zakresy min-max (takie jak 1-31), numery telefonów, Data
- parsowanie HTML za pomocą regex: Patrz "informacje ogólne > kiedy nie używać Regex"
Zaawansowane Regex-Fu
- Ciągi i liczby:
- Wyrażenie regularne dopasowujące linię, która nie zawiera słowo?
- jak ten wzór PCRE wykrywa palindromy?
- Dopasuj struny, których długość jest czwartą potęgą
- Jak to regex znaleźć numery trójkątne?
- Jak określić, czy liczba jest liczbą pierwszą za pomocą wyrażenia regularnego?
- jak dopasować środkowy znak w łańcuchu z regex?
- Inne:
- jak dopasować a^n b^N z Javą regex?
- Dopasuj zagnieżdżone nawiasy
- "pionowe" dopasowanie regex w obrazie ASCII "
- lista wysoko głosowanych pytań regex w kodzie Golf
- jak zrobić dwa kwantyfikatory powtarzające tę samą liczbę razy?
- niemożliwe do dopasowania Wyrażenie regularne:
(?!a)a
-
Dopasuj/Usuń/zamień
this
z wyjątkiem kontekstów A, B I C - dopasować zagnieżdżone nawiasy z regex bez użycia rekurencji lub równoważenia grup?
Informacje O Smaku
(z wyjątkiem tych oznaczonych *
, Ta sekcja zawiera przepełnienie bez stosu linki.)
- Java
- oficjalna dokumentacja: wzór Javadoc, Oracle ' s regular expressions tutorial]}
- różnice między funkcjami w
java.util.regex.Matcher
:-
matches()
): dopasowanie musi być zakotwiczone zarówno w input-start, jak i end -
find()
): dopasowanie może znajdować się w dowolnym miejscu w łańcuchu wejściowym (podłańcuchy) -
lookingAt()
: mecz musi być zakotwiczony to input-start only - (ogólnie rzecz biorąc, kotwy znajdują się w sekcji "kotwy")
-
- jedyny
java.lang.String
funkcje akceptujące wyrażenia regularne:matches(s)
,replaceAll(s,s)
,replaceFirst(s,s)
,split(s)
,split(s,i)
- *(opiniotwórcze i) szczegółowe omówienie wad i brakujących funkcji w
java.util.regex
- . NET
- oficjalna dokumentacja:
- Boost regex engine: składnia Ogólna, składnia Perla (używany przez TextPad, Sublime Text, UltraEdit, ...???)
- JavaScript 1.5 Informacje ogólne i RegExp obiekt
- . NET MySQL Oracle Perl5 wersja 18.2
- PHP: składnia wzorca,
preg_match
- Python: operacje na wyrażeniach regularnych,
search
vsmatch
, how-to - Splunk: terminologia i składnia regex i polecenie regex
- TCL: składnia regex , strona Man,
regexp
polecenie - Visual Studio znajdź i zamień
Informacje ogólne
(łącza oznaczone *
są łączami bez stosu.)
- inne zasoby dokumentacji ogólnej: Nauka wyrażeń regularnych, *Regular-expressions.info, *wpis w Wikipedii, *RexEgg, Open-Directory Projekt
- DFA kontra NFA
- generowanie łańcuchów pasujących do regex
- Książki: Jeffrey Friedl ' s opanowanie wyrażeń regularnych
- kiedy nie używać wyrażeń regularnych:
- niektórzy ludzie, stojąc w obliczu problemu, myślą: "wiem, będę używał wyrażeń regularnych."Teraz mają dwa problemy. (wpis na blogu napisany przez Stack Overflow's founder) *
- nie używaj regex do analizy HTML:
- Nie . proszę, po prostu nie [131]}
- Może...jeśli jesteś naprawdę zdeterminowany (inne odpowiedzi na to pytanie są również dobre)
Przykłady wyrażeń regularnych, które mogą spowodować awarię silnika regex
Narzędzia: testery i objaśnienia
(Ta sekcja zawiera linki bez stosu.)
-
Online (*zawiera Tester zastępczy,+ zawiera Tester dzielony):
- Debuggex (posiada również repozytorium przydatnych wyrażeń regularnych) javascript, python, pcre
- *Wyrażenia Regularne 101 php, pcre, python, javascript
- Regex Pal, regular-expressions.info javascript
- Rubular ruby RegExr Regex Hero dotnet
- *+ regexstorm.net . NET
- *RegexPlanet: Java java , Idź idź., 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 i POSIX, javascript - Refiddle javascript ruby . NET
-
Offline:
- Microsoft Windows: RegexBuddy (analiza), RegexMagic (tworzenie), Expresso (analiza, tworzenie, wolne)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-16 11:54:52