选择此字符串的某个部分

时间:2013-05-10 16:29:26

标签: regex

我需要选择一小部分字符串。

以下是一个示例字符串:http://itunes.apple.com/app/eyelashes/id564783832?uo=5

我需要:564783832

要记住以下几点:

  • 该号码的前面总是id(即id564783832
  • 数字后面可能有?uo=5,也可能没有uo以外的其他参数。
  • 我需要的字符串可以是不同的长度(不一定是9位)
  • id之前的文字将具有相似的格式(相同的斜线数,但文字会有所不同)

最终将使用Ruby实现。

3 个答案:

答案 0 :(得分:2)

在不知道您的语言/工具的情况下,只需假设支持后面。

'(?<=id)\d+'

答案 1 :(得分:0)

您可以匹配前面带有“id”的一些数字序列 - 这假设这些是唯一以“id”开头的数字序列:

(?<=id)\d++

Java中的测试用例:

public static void main(String[] args) {
    String input = "http://itunes.apple.com/app/eyelashes/id564783832?uo=5";
    Pattern pattern = Pattern.compile("(?<=id)\\d++");
    Matcher matcher = pattern.matcher(input);
    while (matcher.find()) {
        System.out.println(matcher.group());
    }
}

输出

564783832

答案 2 :(得分:0)

这是我的:

[\w\/]+id(\d+)(\?|$)