Find URI in text: Difference between revisions
Content added Content deleted
(Pike) |
(→{{header|Pike}}: remove legal characters if at the end) |
||
Line 20: | Line 20: | ||
=={{header|Pike}}== |
=={{header|Pike}}== |
||
<lang Pike>string uritext = "this URI contains an illegal character, parentheses and a misplaced full stop: |
<lang Pike>string uritext = "this URI contains an illegal character, parentheses and a misplaced full stop:" "http://en.wikipedia.org/wiki/Erich_Kästner_(camera_designer). (which is handled by http://mediawiki.org)."; |
||
http://en.wikipedia.org/wiki/Erich_Kästner_(camera_designer). (which is handled by http://mediawiki.org)."; |
|||
array find_uris(string uritext) |
array find_uris(string uritext) |
||
Line 31: | Line 30: | ||
int prepos = sizeof(array_sscanf(reverse(uritext[pos-20..pos-1]), "%[a-zA-Z0-9+.-]%s")[0]); |
int prepos = sizeof(array_sscanf(reverse(uritext[pos-20..pos-1]), "%[a-zA-Z0-9+.-]%s")[0]); |
||
int postpos = sizeof(array_sscanf(uritext[pos+3..], "%[^ <>\"]%s")[0]); |
int postpos = sizeof(array_sscanf(uritext[pos+3..], "%[^ <>\"]%s")[0]); |
||
if ((<'.',',','?','!',';'>)[uritext[pos+postpos+2]]) |
|||
postpos--; |
|||
if (uritext[pos-prepos-1]=='(' && uritext[pos+postpos+2]==')') |
if (uritext[pos-prepos-1]=='(' && uritext[pos+postpos+2]==')') |
||
postpos--; |
postpos--; |
||
uris+= ({ uritext[pos-prepos..pos+postpos+2] }); |
uris+= ({ uritext[pos-prepos..pos+postpos+2] }); |
||
} |
} |