首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配所有字符串,直到在urlrewrite.xml中出现指定的字符串

匹配所有字符串,直到在urlrewrite.xml中出现指定的字符串
EN

Stack Overflow用户
提问于 2015-10-06 13:20:19
回答 1查看 17关注 0票数 0

我正试图完成这样一种情况:

http://verylongpath.com/show.html,a1,b2,c3,stop,d4,e5

会被改写为

path=a1&attributes=b2,c3&splitters=d4,e5 (或者更像somepath.html?path=1&attributes=$numberOfGroup&splitters=$numberOfGroup)

到目前为止,我已经成功地创建了类似于

代码语言:javascript
复制
<from>^/(?!whatever/)(.*),a([0-9]+)(,(.+))?.html(\?(.*))?$</from>
<to last="true">somepath.html?path=$2&amp;attributes=$4&amp;$6</to>

很明显,我已经修改了代码的这一部分:

代码语言:javascript
复制
(,(.+))

具有以下含义:将每个字符串(例如: b3、c56、e12345)按',‘分隔,直到遇到特定的字符串(“停止”),然后继续匹配,直到遇到’‘。

我试着用

代码语言:javascript
复制
(,(.+?(?=stop)))?

在……里面

代码语言:javascript
复制
<from>^/(?!whatever/)(.*),a([0-9]+)(,(.?!(?=stop)))?,stop(,(.+))?.html(\?(.*))?$</from>

没有成功的结果,因为'stop‘仍然被匹配为一个正常的字符串,我的rewroten url如下所示:

代码语言:javascript
复制
"somepath.html?path=54&attributes=a1,b2,c3,stop,d4,e5&"

如果有人能帮我找到有效的解决办法,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 13:41:40

from标记中尝试以下表达式:

代码语言:javascript
复制
^[^,]+,(a[0-9]+),(.*?),stop,?(.*)$

请注意,它是一个非常通用的表达式。上面没有花哨的比赛/组。如果任何匹配的组都是可选的,则使用?将其变为可选组。

现在,在重写的URL中:

代码语言:javascript
复制
somepath.html?path=$1&attributes=$2&splitters=$3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32971088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档