我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:
let re = NSRegularExpression(pattern: "https?:\\/.*",options: nil,error: nil)!
但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.
我试过了:
let re = NSRegularExpression(pattern: "(h|H)(t|T)(t|T)(p|P)s?:\\/.*",error: nil)!
但什么都没发生.
解决方法
您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅
Foundation Framework Reference.
(?ismwx-ismwx)
Flag settings. Change the flag settings. Changes apply to the portion of the pattern following the setting. For example,(?i) changes to a case insensitive match.The flags are defined in Flag Options.
对于读者:
匹配较大文本中的URL已经是solved problem,但对于这种情况,simple regex就像
(?i)https?://(?:www\\.)?\\S+(?:/|\\b)
将要做的就是OP要求只匹配以http或https或HTTPs等开头的URL.