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

Java-Regex问题

  •  1
  • Amit  · 技术社区  · 15 年前

    我有一个类型的url列表

    • http://www.example.com/pk/ca ,
    • http://www.example.com/pk ,
    • http://www.example.com/anthingcangoeshere/pk
    • http://www.example.com/pkisnotnecessaryhere .

    现在,我只想找出那些以 /pk /pk/ 在这两者之间没有任何关系 .com /主键

    4 回复  |  直到 15 年前
        1
  •  1
  •   Mark Byers    15 年前

    您的问题没有完全定义,因此我无法给出确切的答案,但这应该是您可以使用的一个开始:

    ^[^:]+://[^/]+\.com/pk/?$
    

    http://www.example.com/pk
    http://www.example.com/pk/
    https://www.example.com/pk
    

    这些字符串不匹配:

    http://www.example.co.uk/pk
    http://www.example.com/pk/ca
    http://www.example.com/anthingcangoeshere/pk
    http://www.example.com/pkisnotnecessaryhere
    
        2
  •  1
  •   Behrang Saeedzadeh    15 年前
    String pattern = "^http://www.example.com/pk/?$";
    

    希望这有帮助。

    ^ 到模式的开始,然后 foobarhttp://www.example.com/pk/ 也会被接受。如果你不加 $ 到模式的最后,然后 http://www.exampke.com/pk/foobar

        3
  •  1
  •   Christian Semrau Louis Wasserman    15 年前

    直接翻译您的请求“[…]url,以/pk或/pk/结尾,并且在.com和/pk之间没有任何内容”,并附加假设总是有一个“.com”,会得到以下正则表达式:

    find() :

    \.com/pk/?$
    

    matches() :

    .*\.com/pk/?
    

    这里给出的其他答案给出了更严格的模式,只允许更接近示例的url。尤其是我的模式没有验证给定的字符串是语法上有效的URL。

        4
  •  0
  •   Martijn Courteaux    15 年前
    String pattern = "^https?://(www\.)?.+\\.com/pk/?$";