Latest web development tutorials

Espressioni regolari - Esempi

espressioni semplici

La forma più semplice di una espressione regolare che corrisponde il suo carattere unico ordinaria nella stringa di ricerca. Ad esempio, la modalità solo carattere, come A, sia nella stringa di ricerca in cui corrisponde sempre la lettera A. Il seguente è un esempio di un modello di espressione regolare di alcuni dei singoli caratteri:

/a/
/7/
/M/

Può essere combinate insieme per formare un singolo carattere di molti grandi espressioni. Ad esempio, la seguente espressione regolare è una combinazione di espressioni singolo carattere: a, 7 e M.

/a7M/

Si noti che nessun operatore di concatenazione. Basta digitare un altro personaggio dietro un carattere.

le partite di carattere

Dot (.) Corrisponde alla stringa in una varietà di stampa e non stampabili caratteri, una sola eccezione carattere. L'eccezione è il carattere di nuova riga (\ n). La seguente espressione regolare corrisponde aac, abc, acc, ADC, ecc, così come A1C, A2C, AC, e un # c:

/a.c/

Per abbinare una stringa contenente il nome del file e il punto (.) È parte integrante della stringa di input, di fronte alla espressione regolare nel periodo di più il carattere di backslash (\). Per illustrare, la seguente espressione regolare corrisponde filename.ext:

/filename\.ext/

Queste espressioni consentono solo di abbinare "qualsiasi" singolo carattere. L'elenco potrebbe essere necessario corrispondere set di caratteri specifici. Ad esempio, si consiglia di trovare i titoli dei capitoli con i numeri (capitolo 1, capitolo 2, e così via).

Espressioni tra parentesi

Per creare un elenco di gruppo di caratteri corrispondenti, tra parentesi quadre ([e]) ponendo uno o più caratteri individuali all'interno. Quando il personaggio racchiuso tra parentesi, l'elenco definito "espressione staffa." Come in qualsiasi altro luogo, personaggi ordinari rappresentano se stessi tra parentesi, cioè, corrisponde a uno dei suoi nel testo di input. Perdono il loro significato quando appaiono nell'espressione staffa personaggi più speciali. Ma ci sono alcune eccezioni, come ad esempio:

  • Se il carattere] non è la prima, è la fine di un elenco. Per abbinare il carattere lista], metterla al primo posto, seguita all'inizio del [schiena.
  • \ Character continua ad essere un carattere di escape. Per abbinare il carattere \, utilizzare \\.

Racchiuso in un match espressione staffa solo un carattere in una espressione regolare in un singolo carattere in quella posizione. La seguente espressione regolare che corrisponde Capitolo 1, Capitolo 2, capitolo 3, Capitolo 4 e il Capitolo 5:

/Chapter [12345]/

Si noti che la posizione dello spazio dopo la parola capo e rispetto al carattere all'interno delle parentesi sono fissi. espressione staffa specifica corrisponde solo una posizione singolo carattere che segue immediatamente la parola capo e lo spazio dietro il set di caratteri. Questa è la posizione del carattere nono.

Per utilizzare un intervallo al posto dei personaggi stessi per rappresentare set di caratteri corrispondenti, utilizzare un trattino (-) nel campo del carattere di inizio e fine carattere separatamente. valore di carattere per determinare l'ordine relativo dei singoli caratteri all'interno della gamma. La seguente espressione regolare contiene una espressione di intervallo, l'espressione è equivalente al range indicato sopra nella lista parentesi.

/Chapter [1-5]/

Quando utilizzato in questo intervallo modo specificato, sia i valori iniziale e finale sono inclusi nell'ambito. Nota È anche importante, secondo l'ordinamento Unicode, il valore deve iniziare alla fine dei valori precedenti.

Per includere nella staffa espressione trattino, utilizzare uno dei seguenti metodi:

  • Con il backslash sfuggire:
    [\-]
  • Il trattino all'inizio o alla fine della lista tra parentesi. Le seguenti espressioni corrispondono tutte le lettere minuscole e trattini:
    [-a-z]
    [a-z-]
    
  • Creare un intervallo, in questo intervallo, il valore iniziale è minore il trattino e il carattere finale è uguale o maggiore del trattino. Le seguenti due espressioni regolari rispondono a questa esigenza:
    [!--]
    [!-~]
    

Per trovare un elenco o che non rientrano nell'ambito di tutti i caratteri, impostare il punto di inserimento (^) all'inizio della lista. Se una qualsiasi altra posizione nella lista per inserire appaiono personaggi, allora si abbina. La seguente espressione regolare corrisponde a qualsiasi carattere, 4 o 5 cifre e oltre:

/Chapter [^12345]/

Nell'esempio precedente, l'espressione corrisponde qualsiasi 3, 4 o 5 numeri e caratteri diversi rispetto alla nona posizione. Così, ad esempio, capitolo 7 è una corrispondenza, capitolo 9 è una partita.

L'espressione di cui sopra può utilizzare un trattino (-) per indicare:

/Chapter [^1-5]/

Un utilizzo tipico di una espressione tra parentesi quadre è quello di specificare eventuali lettere maiuscole o minuscole o un qualsiasi numero di partite. La seguente espressione specifica un tale incontro:

/[A-Za-z0-9]/

Sostituzioni e raggruppamento

Sostituire uso | carattere per consentire la comunicazione tra due o più alternative tra cui scegliere. Ad esempio, i titoli dei capitoli possono essere estesi espressioni regolari per restituire una gamma più ampia di quanto il titolo del capitolo corrisponde. Tuttavia, questo non è così semplice come si potrebbe pensare. Sostituire Partita | carattere massima espressione di un qualsiasi lato.

Si potrebbe pensare che la seguente espressione corrisponde appare all'inizio e alla fine della linea, seguito da una o due cifre del capitolo o sezione:

/^Chapter|Section [1-9][0-9]{0,1}$/

Purtroppo, l'espressione regolare sopra le linee sia la prima parola capitolo o corrispondenza fine della linea con la Sezione di parola e tutti i numeri successivi di corrispondenza. Se la stringa di input è il capitolo 22, quindi l'espressione sopra corrisponde solo la parola Capitolo. Se la stringa di input è la sezione 22, quindi l'espressione corrisponde Sezione 22.

Per rendere le espressioni regolari sono più facili da controllare, è possibile utilizzare le parentesi per limitare la portata di sostituzione, vale a dire, per garantire che essa si applica solo ai due parole capitolo e della sezione. Tuttavia, parentesi vengono usati per creare una sotto-espressione, ed eventualmente catturare per un uso successivo, che è descritto nella sezione sui riferimenti inversa. Con le espressioni regolari di cui sopra per aggiungere luogo parentesi, può rendere l'espressione regolare che corrisponde Capitolo 1 o al punto 3.

La seguente espressione regolare utilizza parentesi per raggruppare capitolo e la sezione, al fine di funzionare correttamente l'espressione:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Anche se queste espressioni funzionano, ma Capitolo | staffe di sezione intorno prenderà uno dei due parole in un match per un uso successivo. Dal momento che l'espressione di cui sopra è solo una serie di parentesi, in modo che ha catturato solo un "sub-partite".

Nel precedente esempio, è sufficiente utilizzare le parentesi per selezionare una combinazione di parole tra il capo e sezione. Per evitare che le partite per essere salvato per un utilizzo futuro, prima che il modello di espressione regolare è posto tra parentesi?:. Il seguente modifica fornisce la stessa funzionalità senza salvare le partite del bambino:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Inoltre :? carattere Exon, gli altri due sono metacaratteri non catturare creare qualcosa chiamato match "lookahead". uso lookahead Forward? = specificato, esso corrisponde in parentesi corrispondono al modello di espressione regolare del punto di partenza della stringa di ricerca. Reverse uso lookahead ?! specificato, esso corrisponde al modello di espressione regolare non corrisponde la stringa di ricerca della stringa di partenza.

Ad esempio, si supponga di avere un documento che contiene i collegamenti a Windows 3.1, Windows 95, Windows 98 e Windows NT riferimenti di. Si supponga inoltre che è necessario aggiornare il documento punterà a Windows 95, Windows 98 e Windows NT tutti i riferimenti modificati in Windows 2000. La seguente espressione regolare (questo è il primo esempio di una previsione in avanti) corrisponde Windows 95, Windows 98 e Windows NT:

/Windows(?=95 |98 |NT )/

Trova un match, la partita sarà immediatamente cercare la prossima partita il testo (non compresi i caratteri guardano avanti) dopo. Ad esempio, se l'espressione sopra abbinato Windows 98, sarà invece proseguire la ricerca dopo 98 dopo che Windows.

Altri esempi

Ecco alcuni esempi di espressioni regolari:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。