[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 11:46 PM 6/9/2012, you wrote:
>>>The content I'm parsing is machine generated, so no carriage return.
>>>I was being a little lazy, I had copied this pattern match from another one I was using, in it I was having to match just on ascii characters and numbers. I had a comment in the stylesheet that I needed to fix the pattern to be more general as other chaacters could show up. This modification should handle that problem.
..dan
voice: 619-938-3610
Re: [xsl] analyze-string help?
Subject: Re: [xsl] analyze-string help? From: Dan Vint <dvint@xxxxxxxxx> Date: Sun, 10 Jun 2012 09:01:49 -0700 |
At 11:46 PM 6/9/2012, you wrote:
You show the output as having a newline between "Module" and "Batteries" (which might just be an artifact of e-mail) -- is that what the input has? If so, your input pattern doesn't match newline, and will fail. To fix, just use normalize-space($title) as the input (i.e., value of @select).
>>>The content I'm parsing is machine generated, so no carriage return.
But is there any reason not to use a simpler regex? E.g., <xsl:analyze-string select="normalize-space($title)" regex="(.+) - (.+)">
Even if it doesn't fix your problem, it might make it easier to find.
>>>I was being a little lazy, I had copied this pattern match from another one I was using, in it I was having to match just on ascii characters and numbers. I had a comment in the stylesheet that I needed to fix the pattern to be more general as other chaacters could show up. This modification should handle that problem.
..dan
> I have the following value in the $title variable without the > quotes "foo-119 Mode Module Batteries - Installation" > > I have a series of strings like this where I want to separate the > content after the last "space dash space" from everything the > proceeds that point. So I came up with the following: > > <xsl:analyze-string select="$title" regex="([A-Za-z0-9 -,./]*) - ([ > A-Za-z0-9/]*)"> > <xsl:matching-substring> > <techname><xsl:value-of select="regex-group(1)"/></techname> > <infoname><xsl:value-of select="regex-group(2)"/></infoname> > </xsl:matching-substring> > <xsl:non-matching-substring> > <xsl:comment>NO MATCH for techname and infoname > "<xsl:value-of select="$title"/>"</xsl:comment> > </xsl:non-matching-substring> > </xsl:analyze-string> > > I'm getting this output: > > <!--NO MATCH for techname and infoname "foo-119 Mode Module > Batteries - Installation"--> > <techname>119 Mode Module Batteries</techname> > <infoname>Installation</infoname> > > I was expecting all dashes to be captured except for the last one > or at least the first "space dash space", it looks like the pattern > gets the "foo-" and flags it as mismatched and then captures the > other two strings. Can you help me understand what is going on.
--------------------------------------------------------------------------- Danny Vint
Panoramic Photography http://www.dvint.com
voice: 619-938-3610
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] analyze-string help?, Wolfgang Laun | Thread | Re: [xsl] analyze-string help?, Imsieke, Gerrit, le- |
Re: [xsl] analyze-string help?, Dan Vint | Date | Re: [xsl] analyze-string help?, Syd Bauman |
Month |