2016-02-09 51 views
1

我试图创建一个PCRE正则表达式来匹配列表中除了一个以外的列表中的每个文件。当然,以编程方式进行这种排除会是一个笑话,但我必须用正则表达式来做,因为我别无选择。这是我创建至今:正则表达式 - Negative Lookahead

^(?!transport).*\.php$ 

基本上,我需要用PHP扩展extept transport.php每个文件相匹配。因此,这里有我的测试结果:

transport.php   # Not Matched! Good! 
test_transport.php  # Matched! Good! 
transport_test.php  # Not Matched! Bad! 
test_transport_test.php # Matched! Good! 

那么问题是,我的正则表达式不匹配的文件,如transport(.*)\.php(即先从transport,但也包含了扩展前的其他字符),这是不正常的我。但我不知道如何解决这个问题。任何建议?

+1

开始你只需要确认字面'.'是在向前看运输后不匹配。 –

回答

3

使用该负前瞻:

^(?!transport\.php$).*\.php$ 

RegEx Demo

(?!transport),另一方面将无法匹配任何文件,transport