我需要选择字符串的一小部分。
这是一个示例字符串:http://itunes.apple.com/app/eyelashes/id564783832?uo=5
我需要:564783832
要记住几件事:
- 该数字将始终以
id
(即。id564783832
) - 后面可能有也可能没有
?uo=5
(也可能是其他参数uo
) - 我需要的字符串可以是不同的长度(不会总是 9 位)
- 前面的文本
id
将具有相似的格式(斜线 # 相同,但文本会不同)
这最终将通过 Ruby 实现。
我需要选择字符串的一小部分。
这是一个示例字符串:http://itunes.apple.com/app/eyelashes/id564783832?uo=5
我需要:564783832
要记住几件事:
id
(即。id564783832
)?uo=5
(也可能是其他参数uo
)id
将具有相似的格式(斜线 # 相同,但文本会不同)这最终将通过 Ruby 实现。
在不了解您的语言/工具的情况下,假设支持向后看。
'(?<=id)\d+'
和awk
awk '{print $2}' FS='(id|?)'
您可以匹配一些以“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
这是我的:
[\w\/]+id(\d+)(\?|$)