0

私は次のようなURLを持っています:

http://127.0.0.1:81/controller/verbOne/ NXw4fDF8MXwxfDQ1?source = dddd

また

http://127.0.0.1:81/controller/verbTwo/ NXw4fDF8MXwxfDQ1

その部分を太字で抽出したいと思います。ホストとポートは何にでも変更できます(ライブサーバーに公開すると変更されます)。コントローラは変更されません。動詞の部分については、2つの可能性があります。

誰かが正規表現を手伝ってくれますか?

ありがとう

4

4 に答える 4

3

正規表現を使用する代わりに、の組み込み機能を使用できます。Uri

Uri uri = new Uri("http://127.0.0.1:81/controller/verbOne/NXw4fDF8MXwxfDQ1?source=dddd");

var lastSegment = uri.Segments.Last();
于 2012-04-12T14:01:23.263 に答える
0

UriPathクラスを探しています:

Path.GetFileName(new Uri(str).AbsolutePath)
于 2012-04-12T14:01:01.380 に答える
0

なぜ正規表現を探すのですか?2つの文字列要素「verbOne/」または「verbTwo/」を探して、最後から部分文字列を作成できます。そして、残りを探して、「?」でその部分をサブストラクトすることができます。

これは正規表現よりも速いと思います。

クリキット

于 2012-04-12T14:02:53.157 に答える
0

ここにいる他のすべての人は、正規表現が最善の解決策ではないことは正しいですが、専門性のために失敗することのないパーサーがすでに存在する場合は失敗する可能性があるため、次の正規表現を使用できると思います。

(?<=http://127\.0\.0\.1:81/controller/verb(One|Two)/)[a-zA-Z0-9]*
于 2012-04-12T14:06:58.430 に答える