【问题标题】:Regex - Negative Lookahead正则表达式 - 负前瞻
【发布时间】:2016-02-09 19:33:59
【问题描述】:

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

^(?!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 开头,但在扩展名之前还包含其他字符),这对我来说不合适。但我不知道如何解决这个问题。有什么建议吗?

【问题讨论】:

  • 您只需要在前瞻中传输后确认文字.不匹配即可。

标签: regex pcre


【解决方案1】:

使用此否定前瞻:

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

RegEx Demo

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

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2011-10-14
    • 2010-12-17
    • 1970-01-01
    相关资源
    最近更新 更多