W3C home > Mailing lists > Public > public-sparql-dev@w3.org > April to June 2014

Re: SUBSTR with negativ length

From: Andy Seaborne <andy@apache.org>
Date: Tue, 29 Apr 2014 16:42:30 +0100
Message-ID: <535FC866.90109@apache.org>
To: public-sparql-dev@w3.org
SUBTR is defined to behave like fn:substring from XQuery/Xpath functions 
and operators:

http://www.w3.org/TR/xpath-functions/#func-substring

and that has the example:

"""
fn:substring("12345", 5, -3) returns "".

Characters at positions greater than or equal to 5 and less than 2 are 
selected.
"""

To get the last two,

SUBSTR("abcd",STRLEN("abcd")-1, 2)

or

REPLACE("abcd", "^.*(?=..)", "")

(and probably other ways.)

	Andy

On 29/04/14 15:11, Jürgen Jakobitsch wrote:
> hi,
>
> i just have checked a couple of implementations regarding the behaviour of
> negative length for SUBSTR sparql function. what i tried to achieve is
> to get
> the last two characters of a string, but this doesn't really work anywhere.
>
> a use case : number padding
>
> example :
>
> SELECT ?padded WHERE {
>    ?s ?p ?num FILTER(isNumeric(?num) && ?num<10000000) .
>    BIND(SUBSTR(CONCAT("0000000", ?num),STRLEN(?num),-7) AS ?padded)
> }
>
> any thoughts?
>
> wkr jürgen
>
>
> | Jürgen Jakobitsch,
> | Software Developer
> | Semantic Web Company GmbH
> | Mariahilfer Straße 70 / Neubaugasse 1, Top 8
> | A - 1070 Wien, Austria
> | Mob +43 676 62 12 710 | Fax +43.1.402 12 35 - 22
>
> COMPANY INFORMATION
> | web       : http://www.semantic-web.at/
> | foaf      : http://company.semantic-web.at/person/juergen_jakobitsch
> PERSONAL INFORMATION
> | web       : http://www.turnguard.com
> | foaf      : http://www.turnguard.com/turnguard
> | g+        : https://plus.google.com/111233759991616358206/posts
> | skype     : jakobitsch-punkt
> | xmlns:tg  = "http://www.turnguard.com/turnguard#"
Received on Tuesday, 29 April 2014 15:43:01 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:15:52 UTC