正则表达式 - 负面前瞻

时间:2016-02-09 19:34:00

标签: regex pcre

我试图创建一个PCRE正则表达式来匹配列表中的每个文件,除了一个。当然,以编程方式执行此排除将是一个笑话,但我必须使用正则表达式,因为我别无选择。这是我到目前为止创建的:

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

基本上,我需要将每个文件与php扩展名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 个答案:

答案 0 :(得分:3)

使用这个否定的前瞻:

flatMap

RegEx Demo

另一方面,

^(?!transport\.php$).*\.php$ 将无法匹配任何以(?!transport)开头的文件