regex 在substring-before和substring-after中解析更多数据

fdx2calv  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(132)

我正在解析一个传入字段中的数据,该字段中包含大量数据。基本上没有显示数据,我想得到的是显示在单词ORIGINATOR:之后和单词ORIGINATOR BANK:之前的所有内容,但不一定。有时在单词ORIGINATOR:之后有一个很长的数字,有时以字母开头。我不想那样我想要之后出现的东西。
下面是一个例子:

SENDERS REFERENCE: 123456789ORIGINATOR: /1234567894 XYZ COMPANY 123 ANYSTREET NEW YORK NY 12345ORIGINATOR BANK: 123456789

所以从上面我只想要单词XYZ COMPANY
下面是我用来获取ORIGINATOR之后和ORIGINATOR BANK之前的代码:

<OriginatorCompanyInfo><xsl:value-of select="substring-before(substring-after(wd:Addenda,'ORIGINATOR: '),'ORIGINATOR BANK:')"/></OriginatorCompanyInfo>

养育

<OriginatorCompanyInfo>/1234567894 XYZ COMPANY 123 ANYSTREET NEW YORK NY 12345</OriginatorCompanyInfo>

我尝试在这段代码中使用(\s+\S+\s+(\S+\s+\S+)\s+),但它不起作用。
任何帮助将不胜感激。
谢谢!玛丽亚

<OriginatorCompanyInfo2><xsl:value-of select="substring-before(substring-after(wd:Addenda,'ORIGINATOR:(\s+\S+\s+(\S+\s+\S+)\s+)'),'ORIGINATOR BANK:')"/></OriginatorCompanyInfo2>

什么也没想到-一片空白

<OriginatorCompanyInfo2/>
pieyvz9o

pieyvz9o1#

如果您的处理器支持XSLT 2.0或3.0,则可以使用以下指令:

<xsl:value-of select="replace(wd:Addenda, '.*ORIGINATOR: (\D?\d+ )?(.*)ORIGINATOR BANK.*', '$2')" />

以提取想要的子串。

相关问题