Subject: RE: Function to Extract integer from string
From: "Philip Vallone" <philip.vallone@xxxxxxxxxxx>
Date: Tue, 24 Oct 2006 10:01:01 -0400
|
Thanks David. I think you are right. This may simplify my need to group and
sort.
-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx]
Sent: Tuesday, October 24, 2006 9:51 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Function to Extract integer from string
BTW, what does
"'regex="\d+\.?\d*"' do?
\d is a digit so \d+ is one or more digits \. is a . so \.? is 0-or-1 .
and \d* is zero or more digits
[0-9] also matches digits but with a rather anglo-saxon.ascii view of
what constitutes a digit. \d matches any unicode character with the
appropriate digit property. Still I doubt that US code of Federal
Regulations uses digits from non latin scripts so it probably comes to
the same thing in this case
<xsl:variable name="all" select="replace(.,'[^
0-9\.]','')"/>
<xsl:variable name="numbers" as="xs:string*">
<xsl:analyze-string select="$all" regex="\d+\.?\d*">
<xsl:matching-substring>
<xsl:sequence select="."/>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>
I think that's just giving the sequence of numbers which you could do as
<xsl:variable name="numbers" as="xs:string*"
select="tokenize(.,'[^0-9\.]+')"/>
David
|