gpt4 book ai didi

objective-c - NSRegularExpression 不起作用

转载 作者:行者123 更新时间:2023-12-03 16:29:12 26 4
gpt4 key购买 nike

我尝试从 Facebook 网址中解析照片 ID,例如,

https://www.facebook.com/photo.php?fbid=267217740038587&set=a.207272412699787.48907.100002510899673&type=1

我的正则表达式是@"https?:\/\/(www\.)?facebook\.com\/photo\.php\?fbid=([0-9]+)"

我使用外部工具RegExhibit对此进行了测试 - http://homepage.mac.com/roger_jolly/software/它似乎工作得很好。

但是它在 XCode 中不起作用。我尝试调试,问题似乎出在 photo\.php 之后的 \? 。当我将其更改为

@"https?:\/\/(www\.)?facebook\.com\/photo\.php.fbid=([0-9]+)" (注意我将 \? 更改为 .)

它工作得很好。

虽然这是可以接受的,但我想知道为什么 \? 在这里不起作用。有专家吗? :-)

最佳答案

我不确定,但也许反斜杠 \ 在解析 NSString 时会转义 NSString 本身中的相关后续字符。例如,

NSLog(@"https?:\/\/(www\.)?facebook\.com\/photo\.php\?fbid=([0-9]+)");

实际上打印 https?://(www.)?facebook.com/photo.php?fbid=([0-9]+) 如果将其视为自己的正则表达式,则会执行您描述它的方式(如果您将 ? 替换为 .,则执行半正确)

所以,我猜测要使其正常工作,您需要 @"https?:\\/\\/(www\\.)?facebook\\.com\\/photo\\.php\\?fbid=([0-9]+)" 代替。

关于objective-c - NSRegularExpression 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com