示例文字=
legacycard.ashx?save=false&iNo=3&No=555
样本模式=
^legacycard.ashx(.*)No=(\d+)
想要抓取组#2值“555”(示例文本中“No =”的值)
在Expresso中,这可行,但在ASP.NET UrlRewrite中,它没有捕获。
我错过了什么吗?
谢谢!
答案 0 :(得分:0)
我会沿着这些方向做点什么:
^legacycard.ashx\?(?:.+&)*No=(\d+)
\?
将转义通常将URL和参数分开的问号,然后确保它将捕获每个参数键/值对(在&
上结束的任何内容)之前你真正关心的参数。使用?:
可以指定括号集是非捕获的(我假设你不需要任何数据,有可能略微加速你的正则表达式)而只留下{{1}捕获。这种方法的另一个好处是,无论参数顺序如何,它都能正常工作。
答案 1 :(得分:0)
对我来说很好,你的正则表达式应该匹配整个字符串
legacycard.ashx保存=假安培; INO = 3&安培;否= 555
不确定为什么你有团体,但团体也应该返回
?保存=假安培; INO = 3和
和
555
为了更好的衡量,你应该知道。在legacycard.ashx
中也被正则表达式解释,你通常会逃避它,在这种情况下它并不重要,因为一个点匹配所有东西,也是一个点。 :)
答案 2 :(得分:0)
试试这个
^legacycard.ashx(\?No=|.*?&No=)(\d+)
这应该有效。
答案 3 :(得分:0)
只需使用此正则表达式:
^legacycard\.ashx\?save=(false|true)&iNo=(?<ino>\d+)&No=(?<no>\d+)
然后正则表达式替换为
${no}