ページの改善
いますぐフォークしてオンライン編集し、このページのプルリクエストを送信します。 Github へのログインが必要です。 これは小さな変更に適しています。 大きな変更を加えたい場合は、通常の cloneの使用をお勧めします。
日本語版について
個人的な学習のために、dlang.orgを翻訳したサイトです。 翻訳に際して、様々なサイトを参考にしています。

std.uri

Encode and decode Uniform Resource Identifiers (URIs). URIs are used in internet transfer protocols. Valid URI characters consist of letters, digits, and the characters ;/?:@&=+$,-.!~*'() Reserved URI characters are ;/?:@&=+$, Escape sequences consist of % followed by two hex digits.
See Also:
Authors:

Source std/uri.d

class URIException: object.Exception;
This Exception is thrown if something goes wrong when encoding or decoding a URI.
Examples:
import std.exception : assertThrown;
assertThrown!URIException("%ab".decode);
string decode(Char)(scope const(Char)[] encodedURI)
if (isSomeChar!Char);
Decodes the URI string encodedURI into a UTF-8 string and returns it. Escape sequences that resolve to reserved URI characters are not replaced. Escape sequences that resolve to the '#' character are not replaced.
Examples:
writeln("foo%20bar".decode); // "foo bar"
writeln("%3C%3E.@.%E2%84%A2".decode); // "<>.@.™"
writeln("foo&/".decode); // "foo&/"
writeln("!@#$&*(".decode); // "!@#$&*("
string decodeComponent(Char)(scope const(Char)[] encodedURIComponent)
if (isSomeChar!Char);
Decodes the URI string encodedURI into a UTF-8 string and returns it. All escape sequences are decoded.
Examples:
writeln("foo%2F%26".decodeComponent); // "foo/&"
writeln("dl%C3%A4ng%20r%C3%B6cks".decodeComponent); // "dläng röcks"
writeln("!%40%23%24%25%5E%26*(".decodeComponent); // "!@#$%^&*("
string encode(Char)(scope const(Char)[] uri)
if (isSomeChar!Char);
Encodes the UTF-8 string uri into a URI and returns that URI. Any character not a valid URI character is escaped. The '#' character is not escaped.
Examples:
writeln("foo bar".encode); // "foo%20bar"
writeln("<>.@.™".encode); // "%3C%3E.@.%E2%84%A2"
writeln("foo/#?a=1&b=2".encode); // "foo/#?a=1&b=2"
writeln("dlang+rocks!".encode); // "dlang+rocks!"
writeln("!@#$%^&*(".encode); // "!@#$%25%5E&*("
string encodeComponent(Char)(scope const(Char)[] uriComponent)
if (isSomeChar!Char);
Encodes the UTF-8 string uriComponent into a URI and returns that URI. Any character not a letter, digit, or one of -.!~*'() is escaped.
Examples:
writeln("!@#$%^&*(".encodeComponent); // "!%40%23%24%25%5E%26*("
writeln("<>.@.™".encodeComponent); // "%3C%3E.%40.%E2%84%A2"
writeln("foo/&".encodeComponent); // "foo%2F%26"
writeln("dläng röcks".encodeComponent); // "dl%C3%A4ng%20r%C3%B6cks"
writeln("dlang+rocks!".encodeComponent); // "dlang%2Brocks!"
ptrdiff_t uriLength(Char)(scope const(Char)[] s)
if (isSomeChar!Char);
Does string s[] start with a URL?
Returns:
-1 it does not len it does, and s[0 .. len] is the slice of s[] that is that URL
Examples:
string s1 = "http://www.digitalmars.com/~fred/fredsRX.html#foo end!";
writeln(uriLength(s1)); // 49
string s2 = "no uri here";
writeln(uriLength(s2)); // -1
assert(uriLength("issue 14924") < 0);
ptrdiff_t emailLength(Char)(scope const(Char)[] s)
if (isSomeChar!Char);
Does string s[] start with an email address?
Returns:
-1 it does not len it does, and s[0 .. i] is the slice of s[] that is that email address

References RFC2822

Examples:
string s1 = "my.e-mail@www.example-domain.com with garbage added";
writeln(emailLength(s1)); // 32
string s2 = "no email address here";
writeln(emailLength(s2)); // -1
assert(emailLength("issue 14924") < 0);