首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择此字符串的某一部分

选择此字符串的某一部分
EN

Stack Overflow用户
提问于 2013-05-10 16:29:25
回答 4查看 78关注 0票数 0

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

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

我需要:564783832

有几件事要记住:

  • 这个数字的前面总是id (即。id564783832)
  • 在数字后面可能有或不可能有一个?uo=5 (而且它可能是除uo之外的其他参数)。
  • 我需要的字符串可以是不同的长度(不会总是9位数字)
  • id前面的文本将具有类似的格式(相同的斜杠#,但文本将有所不同)

这最终将由Ruby实现。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-10 16:35:19

在不了解您的语言/工具的情况下,只需假设支持后面的外观即可。

代码语言:javascript
运行
复制
'(?<=id)\d+'
票数 2
EN

Stack Overflow用户

发布于 2013-05-10 16:34:49

awk

代码语言:javascript
运行
复制
awk '{print $2}' FS='(id|?)'
票数 0
EN

Stack Overflow用户

发布于 2013-05-10 16:36:00

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

代码语言:javascript
运行
复制
(?<=id)\d++

Java中的测试用例:

代码语言:javascript
运行
复制
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());
    }
}

输出

代码语言:javascript
运行
复制
564783832
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16486788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档