我有两个网址(下方)。我需要匹配那些不包含"故事"参与其中。我知道我需要使用负面看/后面,但我不能让我的生活让它工作
网址
news/tech/story/2014/oct/28/apple-iphone/261736
news/tech/2014/oct/28/apple-iphone/261736
当前正则表达式
news\/([a-z0-9-\/]{1,255})(\d{4})\/(\w{3})\/(\d{2})\/([a-z0-9\-]{1,50})\/(\d{1,10})
示例:
答案 0 :(得分:1)
您可以像这样使用否定前瞻:
(?!.*\bstory\b)news\/([a-z0-9-\/]{1,255})(\d{4})\/(\w{3})\/(\d{2})\/([a-z0-9\-]{1,50})\/(\d{1,10})
(?!.*\bstory\b)
否定前瞻如果网址中有story
字词,则会停止匹配。
答案 1 :(得分:1)
你可以尝试这个:
news\/(([a-z0-9-\/](?!story)){1,255})(\d{4})\/(\w{3})\/(\d{2})\/([a-z0-9\-]{1,50})\/(\d{1,10})
答案 2 :(得分:1)
如果您不必使用正则表达式
,可以使用strpos()进行检查 if (strpos($url, 'story') === false