Re: [xsl] Function to Extract integer from string

Subject: Re: [xsl] Function to Extract integer from string
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 24 Oct 2006 14:50:52 +0100
  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

Current Thread