2013-08-02 21 views
38

Vorrei scrivere un'espressione regolare che inizia con la stringa "wp" e termina con la stringa "php" per individuare un file in una directory. Come lo faccio?Espressione regolare - inizio e fine con una stringa di caratteri

Esempio di file: wp-comments-post.php

+0

C'è un buon tutorial qui: http://www.regular-expressions.info/tutorial.html –

+0

Perché regex? Non preferiresti usare globbing quando cerchi i file? –

+0

Come lo faresti usando il globbing? –

risposta

62

Questo dovrebbe farlo per voi ^wp.*php$

Partite

wp-comments-post.php 
wp.something.php 
wp.php 

non corrisponde

something-wp.php 
wp.php.txt 
29

^wp.*\.php$ Dovrebbe fare il trucco.

.* significa "qualsiasi carattere, ripetuto 0 o più volte". Il prossimo . è escapato perché è un carattere speciale e si desidera un periodo letterale (".php"). Non dimenticare che se stai digitando questo come una stringa letterale in qualcosa come C#, Java, ecc., Devi sfuggire alla barra rovesciata perché è un carattere speciale in molte stringhe letterali.

+0

Questo dovrebbe funzionare anche: ^ wp. + \. Php $ L'unica differenza è il '+', che rende il punto "avido". –

+4

@AdamHowell '+' e '*' sono entrambi avidi, sebbene in questo caso l'avidità non faccia la differenza. La differenza è che '*' corrisponde a zero o più caratteri, e '+' corrisponde a uno o più caratteri. Quindi se qualcuno volesse abbinare "wp.php", dovrebbero usare '*'; se volevano specificatamente non farlo, dovrebbero usare '+'. – Michelle

0

Esempio: ajshdjashdjashdlasdlhdlSTARTasdasdsdaasdENDaknsdklansdlknaldknaaklsdn

1) START\w*END ritorno: STARTasdasdsdaasdEND - vi darà le parole tra partenza ed FINE

2) START\d*END ritorno: START12121212END - vi darà numeri compresi tra START e END

3) START\d*_\d*END ritorno: START1212_1212END - fornirà i numeri tra START a nd END having _

Problemi correlati