有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java这个正则表达式会匹配“i.imgur.com/xxx”吗?

这个正则表达式是否匹配http://i.imgur.com/xxx

"http://i.imgur.com/[a-zA-Z0-9]*"

我真的不使用正则表达式,我只学过一次。我在谷歌上搜索了如何为imgur做这件事,每个人都有很长的,这还不够好吗?这似乎是工作,但它会错过什么,如何改善

我想找到所有的I.imgur。com/xxx以下载imgur。jpg。基本上,它必须看起来像“http://i.imgur.com/”,其余的将是“afsidjf123”“Bdfsi13”“123aslefBA”


共 (2) 个答案

  1. # 1 楼答案

    首先,您需要转义.,因为它是正则表达式中的一个特殊字符(表示任何字符)。这个正则表达式将匹配http://i\.imgur\.com/,后跟任何字母或数字,如果这是您想要的:

    "http://i\.imgur\.com/[a-zA-Z0-9]+"
    
  2. # 2 楼答案

    总之,是的

    根据你使用的语言,这是一种方法

    或者,您可以使用类似\w这样更简单的方法,它匹配所有单词字符:

    http://i\\.imgur\\.com/\\w*
    

    也很重要:.是正则表达式中用于匹配“任意一个字符”的特殊字符;你可能会用这种方式得到一些误报。您需要使用反斜杠\来转义文字句点

    在这里看到它的作用:http://regex101.com/r/tP0iU7

    (注意反斜杠转义/,这是PHP的一个要求,在上面的表达式中,\必须由另一个\转义)

    需要注意的事项:

    • 因为您使用的是Java,所以还需要对每个反斜杠进行双转义,因为Java中的正则表达式只是正则字符串。更新示例以反映这一点
    • 请注意,此表达式与image.jpg中的.不匹配;如果你也想捕捉它,你需要使用像[\w.]这样的字符类,而不仅仅是\w
    • 请注意,通过特别指定http://,您将永远无法匹配https://上托管的任何内容。您可以通过添加一个“非贪婪的”s?来实现这两种匹配,如下所示:https?://