我需要一个我想要与几个不同字符串匹配的正则表达式。
正则表达式应检索此字符串的匹配项:
http://www.domain.com/category
但不是为了这个:
http://www.domain.com/category/sports
或
http://www.domain.com/category/sportsmanship
我尝试了以下正则表达式,但它并不真正想要工作:
/categ.*?^((?!sports).)*$/g
答案 0 :(得分:2)
答案 1 :(得分:1)
你可以写
/\/categ[^\/]*(?:\/(?!sports)[^\/]*)*$/
在这种模式中,如果字符串“sports”没有跟随,则每个斜线后负向前瞻检查。
注意:如果您必须经常处理包含字符串“sports”的长路径,您可以尝试使用此变体来加速模式:
/\/categ(?=([^\/]*))\1(?:\/(?!sports)(?=([^\/]*))\2)*$/
答案 2 :(得分:0)
我认为您不希望最后匹配包含字符串sports
的行。如果是,那么你可以试试下面的正则表达式,
^.*?categ(?:(?!sports).)*$
正则表达式的问题是.*?^
。 ^
断言我们处在一条线的起点。