代码之家  ›  专栏  ›  技术社区  ›  Adam

正则表达式以确保字符串不完全匹配

  •  0
  • Adam  · 技术社区  · 6 年前

    我想建立一个正则表达式,它应该只匹配,如果字符串不完全是“amp”。

    我想要的是:

    此字符串不应匹配:
    “地点/美国/纽约/amp”


    “地点/美国/纽约/安菲”
    “地点/美国/纽约/露营”

    venues-in\/([a-zA-Z0-9-+'.]+)\/([a-zA-Z0-9-+'.]+)\/([a-zA-Z0-9-+'.]+)

    我试着玩这个游戏 ! https://regex101.com/ ,以及负面展望: ^(?=amp)([a-zA-Z0-9-+'.]+)

    但我想不通。请帮忙。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Sebastian Proske    6 年前

    使用

    venues-in\/([a-zA-Z0-9-+'.]+)\/([a-zA-Z0-9-+'.]+)\/(?!amp$)([a-zA-Z0-9-+'.]+)
    

    (?!pattern) . 这个 $ amp 没有后缀。

    如果你的弦可以是 venues-in/united-states/new-york/amp/whatever (?!amp(?:$|\/) .

        2
  •  1
  •   Nambi_0915    6 年前

    我想这会管用的,

    venues-in\/([a-zA-Z0-9\-+'.]+)\/([a-zA-Z0-9\-+'.]+)\/(?!amp$)([a-zA-Z0-9\-+'.]+)
    

    Regex

        3
  •  0
  •   JGNI    6 年前

    为什么不配呢 \bamp\b 然后在你的程序中做一个不相等的。在Perl中

    if ($string !~ /\bamp\b/) {
        # Do stuff with out amp
    }
    else {
        # Do stuff with amp
    }