mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-04 19:04:46 +00:00
parseurl added
This commit is contained in:
18
lib/pure/parseurl.nim
Executable file
18
lib/pure/parseurl.nim
Executable file
@@ -0,0 +1,18 @@
|
||||
import regexprs, strutils
|
||||
|
||||
type
|
||||
TUrl* = tuple[protocol, subdomain, domain, port: string, path: seq[string]]
|
||||
|
||||
proc parseUrl*(url: string): TUrl =
|
||||
#([a-zA-Z]+://)?(\w+?\.)?(\w+)(\.\w+)(:[0-9]+)?(/.+)?
|
||||
const pattern = r"([a-zA-Z]+://)?(\w+?\.)?(\w+)(\.\w+)(:[0-9]+)?(/.+)?"
|
||||
var m: array[0..6, string] #Array with the matches
|
||||
discard regexprs.match(url, pattern, m)
|
||||
|
||||
result = (protocol: m[1], subdomain: m[2], domain: m[3] & m[4],
|
||||
port: m[5], path: m[6].split('/'))
|
||||
|
||||
when isMainModule:
|
||||
var r = parseUrl(r"http://google.com/search?var=bleahdhsad")
|
||||
echo(r.domain)
|
||||
|
||||
@@ -53,6 +53,8 @@ import
|
||||
|
||||
# the parser treats ``<br />`` as ``<br></br>``
|
||||
|
||||
## xmlElementCloseEnd, ## ``/>``
|
||||
|
||||
type
|
||||
TXmlEventKind* = enum ## enumation of all events that may occur when parsing
|
||||
xmlError, ## an error ocurred during parsing
|
||||
|
||||
@@ -12,6 +12,8 @@ Bugfixes
|
||||
--------
|
||||
- The Posix version of ``os.copyFile`` has better error handling.
|
||||
- Fixed bug #502670 (underscores in identifiers).
|
||||
- Fixed a bug in the ``parsexml`` module concerning the parsing of
|
||||
``<tag attr="value" />``.
|
||||
|
||||
|
||||
Additions
|
||||
|
||||
Reference in New Issue
Block a user