2013-08-02 27 views
38
Ben dize "wp" ile başlar ve bir dizinde bir dosyayı bulmak için dize "php" ile biten normal bir ifade yazmak istiyorum

ile biten. Nasıl yaparım?Normal ifade - başlayan ve bir karakter dizesi

Örnek dosyası:

+0

burada iyi bir öğretici Orada IA ​​_ sahip: http://www.regular-expressions.info/tutorial.html –

+0

Neden regex? Dosya ararken, globb kullanmayı mı tercih edersin? –

+0

Nasıl globbing kullanarak yaparsınız? –

cevap

62

Bu ^wp.*php$

maçlar

için bunu yapmak gerekir wp-comments-post.php
wp-comments-post.php 
wp.something.php 
wp.php 

Eşleşmez

something-wp.php 
wp.php.txt 
29

^wp.*\.php$ Olmalı iş görmek.

.* araçları "herhangi bir karakter, 0 ya da daha fazla kez tekrar". Bir sonraki ., özel bir karakter olduğu için ve kaçık bir dönem (".php") istediğiniz için kaçtı. vb C#, Java, gibi bir şey bir dize olarak bu yazdığınız takdirde, bunu birçok edebi dizeleri özel bir karakter çünkü ters eğik çizgi kaçış gerektiğini unutmayın.

+0

Bu, aşağıdaki gibi de çalışmalıdır: ^ wp. + \. Php $ Tek fark, noktayı "açgözlü" yapan '+'. –

+4

@AdamHowell '+' ve 'açgözlülük bu durumda bir fark yapmaz rağmen *', hem hırslı. Fark, * * 'nin sıfır veya daha fazla karakterle eşleşmesi ve '+' bir veya daha fazla karakterle eşleşmesidir. Yani birisi "wp.php" ile eşleşmek istediyse, '' '; Eğer özel olarak bunu eşleştirmek istemedikleri takdirde, '+' kullanmaları gerekir. – Michelle

0

Örnek: ajshdjashdjashdlasdlhdlSTARTasdasdsdaasdENDaknsdklansdlknaldknaaklsdn

1) START\w*END dönüş: - STARTasdasdsdaasdEND Başlangıç ​​ve Bitiş

2) START\d*END dönüş arasındaki sana kelimeleri verecektir: START12121212END - Başlangıç ​​ve bitiş

arasında numaraları verecek

3) START\d*_\d*END dönüş: START1212_1212END - size BAŞLANGIÇ a arasındaki numaralar verecek nd SON