求一个正则表达式写法

正则匹配第2个/之后的字符串,比如/testapp/user/login,要求结果是/user/login
使用Nginx for lua api来写,ngx.re.match() 或者 ngx.re.find()
https://github.com/kidbei/lua...

阅读 6.6k
5 个回答
'/testapp/user/login'.match(/(?!^)(?:\/[^\/]+)+/)

写一个能匹配/*的正则,然后把除了第一个之外匹配到的串起来。

分组捕获吧,取分组的内容

/^\/.+?(\/.+)/.exec("/testapp/user/login")

["/testapp/user/login", "/user/login"]

这个匹配的话肯定是会把前面的/testapp/一起匹配到的。

所以换一个思路,你就是想把前面的/something/,替换为一个/,所以,就下面的代码啦:

// javascript

var str = "/testapp/user/login";

// 替换字符串
var result = str.replace(/\/[a-zA-z]+\//, "/"); 

// 打印一下结果
console.log( result ); //  /user/login

其中的正则\/[a-zA-z]+\/,就是用来匹配/testapp/的。Node运行如下:
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进