如何用单个正则表达式从两种URL中提取用户名?
单一正则匹配两种URL中的用户名
可以用以下正则表达式一次性匹配两种URL里的用户名:
(?<=://[^/]+(?:/movie)?/)[^/]+
正则说明:
(?<=://[^/]+(?:/movie)?/):正向后顾断言,定位到域名(含端口)后的正确位置:://[^/]+匹配URL中://之后到第一个/前的域名+端口部分(比如example.com:80)(?:/movie)?可选匹配/movie/路径段,非捕获组不影响结果提取
[^/]+:匹配第一个非/的路径段,也就是我们要的用户名
匹配验证:
- 对URL
http://example.com:80/username/token/30000,匹配结果为username - 对URL
http://example.com:80/movie/username/token/30000.mp4,匹配结果为username
内容的提问来源于stack exchange,提问作者Felipe S.
相关产品推荐
相关产品推荐

