我正在寻找一个正则表达式,它返回此示例网址中pid-
之后的所有内容。
URL:
www.example.com/bla-pid-123456
预期比赛:
123456
答案 0 :(得分:1)
$ 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] : "";