2012-08-03 69 views
0

我有一個包含~的url,我需要處理這個字符%7E的編碼版本。處理ISAPI中的編碼字符 - 正則表達式

目前,我們有2條規則來處理這種情況。

^/folder/([\w-]+)~(\d*).aspx$ 
^/folder/([\w-]+)%7E(\d*).aspx$ 

我可以把它合併成一個規則嗎?我嘗試了以下,但它不起作用:

^/folder/([\w-]+)[~|%7E](\d*).aspx$ 

任何幫助這個規則表示讚賞。

回答

1

也許你想嘗試

^/folder/([\w-]+)(~|%7E)(\d*)\.aspx$ 

^/folder/([\w-]+)(?:~|%7E)(\d*)\.aspx$ 

,讓您的拍攝組相同的,如果你正則表達式引擎支持此語法。

[…]構造一個字符類,而不是一組替代品。所以[~|%7E]手段「無論是字面~|%7E

你必須使用括號了點。你應該在\.aspx因爲.手段逃避.‘在正則表達式的任何字符’。

+0

這有效,但改變了我現有的比賽,所以2美元現在是3美元。有沒有辦法讓比賽保持不變? – 2012-08-03 17:39:03

+0

@BrianSalta更新了我的答案,但是也可以將所有的出現從'$ 2'改爲'$ 3 '。 – amon 2012-08-03 17:55:18

+0

這很有效,我讚賞最新的答案。我們的重寫文件非常冗長,需要一段時間才能完成更新所有新的捕獲組。 – 2012-08-03 18:03:31