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

时间:2013-12-20 23:13:42

标签: java regex

此正则表达式是否与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 个答案:

答案 0 :(得分:2)

总之,

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

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

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

也很重要: .是正则表达式中的一个特殊字符,用于匹配“任何一个字符”;你可能会以你的方式使用它来结束一些误报。您需要使用反斜杠\来逃避文字句点。

在此处查看此行动:http://regex101.com/r/tP0iU7

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

有些注意事项:

  • 由于您使用的是Java,因此您需要双重转义每个反斜杠,因为Java中的正则表达式只是常规字符串。更新示例以反映这一点。
  • 请注意,此表达式与.中的image.jpg不匹配;如果你想捕获它,你需要使用像[\w.]这样的字符类,而不仅仅是\w
  • 请注意,通过明确指定http://,您将无法匹配https://上托管的任何内容。您可以通过添加“非贪婪”s?来完成此匹配:https?://

答案 1 :(得分:1)

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

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