[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Inverting names with Jr and Sr considered

Subject: Re: [xsl] Inverting names with Jr and Sr considered
From: "Imsieke, Gerrit, le-tex" <gerrit.imsieke@xxxxxxxxx>
Date: Tue, 06 Nov 2012 01:21:53 +0100

Hi Mark,

I first tried this regex: ((\w+\s+)+)(\w+)(\s+[JS]r)?

But its inherent greediness would always put [JS]r in the (\w+) group, considering it as the last name.

So maybe split this up into two analyze-string passes (or replacements, donbt necessarily need to use analyze-string):

      <xsl:analyze-string select="." regex="\s+([JS]r)\s*$">
          <xsl:text> (</xsl:text>
          <xsl:value-of select="regex-group(1)"/>
          <xsl:analyze-string select="." regex="(.+?)\s+(\w+)\s*$">
              <xsl:value-of select="regex-group(2)"/>
              <xsl:text>, </xsl:text>
              <xsl:value-of select="regex-group(1)"/>

How do you intend to deal with multiple surname components? The way your examples are structured, only multiple first names may occur, while the last name is always expected to match \w+ (no spaces in between).


On 2012-11-06 00:45, Mark wrote:
This must have been done many times, so can some one show me where to
find the answer?

I have a series of personal names in natural order that I need to
invert. The surname is always last except when followed by bJrb, or bSrb
(either of which may not be present). I want to represent:

J Allen Rogers b> Rogers, J Allen
Bill T Wilson Jr b> Wilson, Bill T (Jr)
A B Brown b> Brown, A B
John Victor Case Sr b> Case, John Victor (Sr)

and so on. There may be a single space or multiple spaces between some
the elements of the name.

It looks like <xsl:analyze-string> will do this, but I do not know how
to write regex.


-- Gerrit Imsieke GeschC$ftsfC<hrer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

GeschC$ftsfC<hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard VC6ckler

Current Thread