Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 这个(简单)正则表达式的帮助。。。?_Asp.net_Regex - Fatal编程技术网

Asp.net 这个(简单)正则表达式的帮助。。。?

Asp.net 这个(简单)正则表达式的帮助。。。?,asp.net,regex,Asp.net,Regex,我正在对我的APS.NET应用程序使用URL重写,但没有太多机会匹配以下正则表达式 <rewrite url="~/deals/(.+)$" to="~/Deals.aspx?deal_string=$1" /> <rewrite url="~/deals/(.+?)/edit$" to="~/EditDeals.aspx?deal_string=$1" /> 我想要一个单独的页面来查看“交易”和编辑“交易”。我希望URL只需在交易中添加“/edit”即可转到编辑交

我正在对我的APS.NET应用程序使用URL重写,但没有太多机会匹配以下正则表达式

<rewrite url="~/deals/(.+)$" to="~/Deals.aspx?deal_string=$1" />
<rewrite url="~/deals/(.+?)/edit$" to="~/EditDeals.aspx?deal_string=$1" />

我想要一个单独的页面来查看“交易”和编辑“交易”。我希望URL只需在交易中添加“/edit”即可转到编辑交易页面


目前,所有流量都会进入第一个页面。

问题是,任何与第二个页面匹配的url也会与第一个页面匹配(使用不同的$1捕获)。也许,如果您颠倒声明的顺序,它将起作用。如果第二个也是最具体的第一个被评估,那么它应该完成这项工作

此外,您还可以重写表达式,避免在捕获过程中使用斜杠字符

<rewrite url="~/deals/([ˆ/]+)$" to="~/Deals.aspx?deal_string=$1" />
<rewrite url="~/deals/(.+?)/edit$" to="~/EditDeals.aspx?deal_string=$1" />

字符集[ˆ/]表示除/之外的任何字符。第一个表达式的方式将不再匹配/deals/hello/edit