Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/URL-parser/Jq/url-parser-1.jq
Normal file
21
Task/URL-parser/Jq/url-parser-1.jq
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# See Appendix B of RFC 3986
|
||||
def URL:
|
||||
capture("^((?<scheme>[^:/?#]+):)?(//(?<authority>[^/?#]*))?(?<path>[^?#]*)(\\?(?<query>[^#]*))?(#(?<fragment>.*))?");
|
||||
|
||||
# The authority could be of the form: [username:password@]domain[:port]
|
||||
def authority:
|
||||
capture( "^((?<username>[^:@/]*):(?<password>[^@]*)@)?(?<domain>[^:?]*)(:(?<port>[0-9]*))?$" );
|
||||
|
||||
# The following filter first parses a valid URL into the five basic
|
||||
# components, producing a JSON object with five keys; if the "authority"
|
||||
# field can be futher parsed by `authority`, it is replaced by the
|
||||
# corresponding JSON object.
|
||||
def uri:
|
||||
URL
|
||||
| if .authority
|
||||
then (.authority|authority) as $authority
|
||||
| if $authority then .authority |= $authority
|
||||
else .
|
||||
end
|
||||
else .
|
||||
end;
|
||||
17
Task/URL-parser/Jq/url-parser-2.jq
Normal file
17
Task/URL-parser/Jq/url-parser-2.jq
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
def tests:
|
||||
"foo://example.com:8042/over/there?name=ferret&color=grey#nose",
|
||||
"urn:example:animal:ferret:nose",
|
||||
"jdbc:mysql://test_user:ouupppssss@localhost:3306/sakila?profileSQL=true",
|
||||
"ftp://ftp.is.co.za/rfc/rfc1808.txt",
|
||||
"http://www.ietf.org/rfc/rfc2396.txt#header1",
|
||||
"ldap://[2001:db8::7]/c=GB?objectClass=one&objectClass=two",
|
||||
"mailto:John.Doe@example.com",
|
||||
"news:comp.infosystems.www.servers.unix",
|
||||
"tel:+1-816-555-1212",
|
||||
"telnet://192.0.2.16:80/",
|
||||
"urn:oasis:names:specification:docbook:dtd:xml:4.1.2"
|
||||
;
|
||||
|
||||
# For brevity, drop the `null`s:
|
||||
tests
|
||||
| [., (uri | (.. | select(.==null)) |= empty) ]
|
||||
Loading…
Add table
Add a link
Reference in a new issue