-1

リクエスト URL 内から .​​aspx 拡張子のみを持つリクエストのファイル名 + 拡張子を抽出する必要があります。たとえば。要求された URL がhttp://www.abcd.com/index.aspx?a=1&B=2の場合、 index.aspx を返す必要があります。要求された URL がhttp://abcd.com/products/pages/page1の場合、空が返されます。要求された URL がhttp://abcd.com/images/img1.gifの場合、空が返されます。

編集: URL の他の場所に aspx がある場合、実際の問題が発生する可能性があります。.ただし、ホスト名には通常含まれていないため、を適切にエスケープし.てURL内で検索し、最初の一致を取得すると問題が解決する場合が.aspxあります。

4

3 に答える 3

2

ここでリングに帽子を投げたいだけです。

StackOverflow に関するほとんどの質問と同様に、正規表現は答えではありません。つまり.. それ答えです.. しかし、それは巨人を目覚めさせて、あなたのためにアリをつぶすように頼むことに似ています.

System.Uri uri = new System.Uri("http://www.abcd.com/page/index.aspx?a=1&B=2'");
string fileName = Path.GetFileName(uri.LocalPath);
if (fileName.EndsWith(".aspx")) {
    // this is what you want
}
于 2013-02-06T10:03:27.053 に答える
2

これを試して:

   Match fileNameMatch = Regex.Match("url", @"\w+\.aspx");
   string fileName = fileNameMatch.Value;
于 2013-02-06T09:22:25.850 に答える
0

で終わるファイルのみを抽出するには、次の.aspx正規表現を使用します。

var r = new Regex(@"\w+\.aspx");
var match = r.Match(Request.RawUrl);

if (match.Success)
{
    //your logic here
    var filename = match.Value;
}
于 2013-02-06T09:21:29.640 に答える