我需要解析以下字符串中的id:
https://itunes.apple.com/us/album/24k-magic/id1161503945?i=1161504024&uo=2
我只需要返回以下内容:
id1161503945
字符串始终以https://itunes.apple.com/开头,以?i = #####& uo = 2
结尾我尝试过字符串并用通配符替换,但这不起作用。
答案 0 :(得分:1)
如果它确实始终是url中的最后一个元素(在查询参数之前),那么你可以使用这个简单的正则表达式:
'/id[^?]+/'
注意:正如@xhienne所指出的,如果您确定在搜索到的部分之前的任何地方没有出现另一个id
字符串,那么它只能 。
如果可能发生,请使用:
'/id[\d]+/'
这样,相对于之前的id
字符串,它是安全的,但搜索到的id
必须后跟数字。
答案 1 :(得分:1)
好吧,你可以使用下面的正则表达式。这是工作。我使用了preg_replace函数。
IEnumerable<string> Names = GetData(CardNumber, Section).Select(s => s.FullName);
IEnumerable<string> OrderedList = driver.FindElements(By.XPath("//li[@ng-repeat='Names']")).Select(i => i.Text);
输出
id1161503945
或者您可以使用
$data = 'https://itunes.apple.com/us/album/24k-magic/id1161503945?i=1161504024&uo=2';
echo preg_replace("/(.*)\/(\w+)\?(.*)/","$2",$data);
相同的输出。
希望对你有帮助