正则表达式匹配URL中“pid-”之后的所有数字

时间:2014-10-06 20:52:42

标签: regex

我正在寻找一个正则表达式,它返回此示例网址中pid-之后的所有内容。

  • URL:

    www.example.com/bla-pid-123456

  • 预期比赛:

    123456

5 个答案:

答案 0 :(得分:1)

使用PCRE兼容的Grep

$ echo 'www.example.com/bla-pid-123456' | pcregrep -o 'pid-\K\d+'
123456

答案 1 :(得分:0)

>>> import re
>>> pat = re.compile('pid-(\d+)$')
>>> m = pat.search('www.example.com/bla-pid-123456')
>>> m.groups()[0]
'123456'

答案 2 :(得分:0)

你可以这样做:(快速,因为我不知道你使用哪种语言):

func findStringAfterFirstOccurenceOfString(stringToFind: NSString, inString stringToSearch: NSString) -> NSString?
    for (var i = 0, i <= stringToSearch.length - stringToFind.length; i++) {
        let range = NSMakeRange(i, stringToFind.length)
        let sub = stringToSearch.substringWithRange(range)
        if sub == stringToFind {
            return stringToSearch.substringFromIndex(i + stringToFind.length)
        }
    }
    return nil // No occurrence found
}

stringToFind将是&#34; pid - &#34;在这种情况下。

答案 3 :(得分:0)

由于我不知道你是否可以在PID之后接受字母和/或数字,我有这个。里程可能会有所不同。

在javascript中

仅用于alphanumberic:

var str = "www.example.com/bla-pid-123456",
    re = /pid[-](\w+)$/ ,
    val = str.match(re) ? str.match(re)[1] : null; 

注意:我只是明确地捕获它的&#34; pid -.....&#34;,否则我将空值分配给&#34; val&#34;。这可能是您可能需要的更多内容,但由于我不知道您的意图,并且该网址可以包含&#39; gig-asdfasdf&#39;或者&#39;无论如何......我...想要明确的东西。

答案 4 :(得分:0)

试试这个

      var result = 'www.example.com/bla-pid-123456'.match(/.*pid-(\d+)/);
      result = (result) ? result[1] : "";