我正在使用这个正则表达式:
preg_match("/ted\\.com\\/talks\\/(.*)\\.html/i", $arr[0])
了解该链接是否指向TED.com视频页面,如http://www.ted.com/talks/aparna_rao_art_that_craves_your_attention.html
然而,当他们发布新版TED时,这些视频现在也采用以下格式:http://new.ted.com/talks/aparna_rao_art_that_craves_your_attention
并且如此:
preg_match("/ted\\.com\\/talks\\/(.*)/i", $arr[0])
匹配(旧版本和新版本)版本,它也匹配此网址http://new.ted.com/talks/,我不希望它匹配。如何将(.*)
部分设为强制性的?
答案 0 :(得分:3)
要在/talks/
强制要求后制作该部分,您应使用+
代替*
。这可确保括号内的组中至少出现一个字符:
preg_match("/ted\\.com\\/talks\\/(.+)/i", $arr[0])