0

文字列のごく一部を選択する必要があります。

文字列の例を次に示します。http://itunes.apple.com/app/eyelashes/id564783832?uo=5

私は欲しい:564783832

次の点に注意してください。

  • 番号の前には常にid(つまりid564783832)が付きます。
  • 数値の後にがある場合とない場合があります?uo=5(また、 以外の他のパラメーターである可能性もありますuo) 。
  • 必要な文字列の長さはさまざまです (常に 9 桁になるとは限りません)。
  • 前のテキストidは同様のフォーマットになります (スラッシュの数は同じですが、テキストは異なります)。

これは最終的に Ruby で実装されます。

4

4 に答える 4

2

言語/ツールを知らなくても、後読みがサポートされていると仮定してください。

'(?<=id)\d+'
于 2013-05-10T16:35:19.097 に答える
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
于 2013-05-10T16:36:00.650 に答える
0

これが私のものです:

[\w\/]+id(\d+)(\?|$)
于 2013-05-10T16:37:53.980 に答える
0

awk

awk '{print $2}' FS='(id|?)'
于 2013-05-10T16:34:49.163 に答える