我目前正在使用这个正则表达式(?<=\/movie\/)[^\/]+,但它只匹配第二个网址的用户名,我知道我可以做一个if(contains /movie/):使用此正则表达式,否则:在我的代码上使用另一个正则表达式,但是我尝试直接在正则表达式上执行此操作。
(?<=\/movie\/)[^\/]+
unftdfkk1#
您可以使用类似下面的代码来使movie/可选,并将用户名放在一个命名的捕获组(Live exemple)中:
movie/
\d[/](?:movie\/)?(?<username>[^/]+)[/]
使用\d/将匹配的开始锚定在URL之后。
\d/
y4ekin9u2#
要完成Tensibai的答案,如果您在url中没有端口,您可以使用url中的最后一个点来启动您的正则表达式:
\.[^\/\.]+\/(?:movie\/)?([^\/]+)
(demo)
2条答案
按热度按时间unftdfkk1#
您可以使用类似下面的代码来使
movie/
可选,并将用户名放在一个命名的捕获组(Live exemple)中:使用
\d/
将匹配的开始锚定在URL之后。y4ekin9u2#
要完成Tensibai的答案,如果您在url中没有端口,您可以使用url中的最后一个点来启动您的正则表达式:
(demo)