0

我需要帮助为迁移的站点创建重定向并且可以使用 RegEx。这是之前的链接/cms/events/view/13-03-20/some-post_title.aspx,这是之后的/event/some-post_title。任何人都知道可以做到这一点的正则表达式模式吗?

4

2 回答 2

0

使用示例sed可以是:

$ echo "/cms/events/view/13-03-20/some-post_title.aspx" | sed -e 's![^/]*/[^/]\+\(/[^/]\+/\).\+/\(.\+\)\.[^\.]\+!\1\2!'

要解释正则表达式,首先获取所选分隔符之间的两个字段!:第一个解析输入,第二个用第一个和第二个包含术语的串联替换匹配的字符串。第一项等于/events/第二项some-post_title

方括号用于指定要搜索的一组字符:这里仅用于搜索除斜线之外的任何字符。这样可以分离 URL 元素。

于 2013-06-22T12:56:19.580 回答
0

如果您只需要最后一部分(因为您会知道该事件将始终位于 url 的前面),那么以下两个将起作用。

这匹配除斜线和字符串结尾之间的斜线之外的所有内容。

var newurl = '/event/' + url.match(/[^//]*$/);

这是一个带有替换的版本,它替换了最后一个斜线之前的所有内容。

var newurl = url.replace(/(/|^)([^/]*/)*/, '/event/');
于 2013-06-22T12:58:47.243 回答