regex提取用户名从2类型的url

6rvt4ljy  于 2023-02-17  发布在  其他
关注(0)|答案(2)|浏览(120)

我目前正在使用这个正则表达式(?<=\/movie\/)[^\/]+,但它只匹配第二个网址的用户名,我知道我可以做一个if(contains /movie/):使用此正则表达式,否则:在我的代码上使用另一个正则表达式,但是我尝试直接在正则表达式上执行此操作。

  1. http://example.com:80/username/token/30000
  2. http://example.com:80/movie/username/token/30000.mp4
unftdfkk

unftdfkk1#

您可以使用类似下面的代码来使movie/可选,并将用户名放在一个命名的捕获组(Live exemple)中:

\d[/](?:movie\/)?(?<username>[^/]+)[/]

使用\d/将匹配的开始锚定在URL之后。

y4ekin9u

y4ekin9u2#

要完成Tensibai的答案,如果您在url中没有端口,您可以使用url中的最后一个点来启动您的正则表达式:

\.[^\/\.]+\/(?:movie\/)?([^\/]+)

demo

相关问题