Re: [xsl] Need an XPath expression which returns all xs:pattern elements containing a regex that permits an unbounded number of characters

Subject: Re: [xsl] Need an XPath expression which returns all xs:pattern elements containing a regex that permits an unbounded number of characters
From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 4 Apr 2024 15:46:20 -0000
David Carlisle devised a brilliant approach:

Do a series of replace operations:

remove all whitespace:

    replace(@value,'\s','')

replace \-quoted characters by x:

    replace(@value,'\\.','x')

replace {99,} constructs by *

    replace(@value,'\{[0-9]+,\}','*')

Here are the replaces, inlined:

replace(replace(replace(@value,'\{[0-9]+,\}','*'),'\\.','x'),'\s','')

Here are the results of applying the replaces to some regexes:

A*  --> apply replaces --> A*
A+  --> apply replaces --> A+
A\*  --> apply replaces --> Ax
A\+  --> apply replaces --> Ax
A{0,} --> apply replaces --> A*
A{1,} --> apply replaces --> A*
A{5,} --> apply replaces --> A*
\\* --> apply replaces --> x*

To implement "Find all xs:pattern elements that permit an unbounded number of
characters" do this:

	If the string resulting from applying the replaces
 	contains * or +, then the regex permits an
 	unbounded number of characters.

David (or anyone), is this correct?

/Roger

Current Thread