0

嗨,我有一个样式表,我在其中使用 xsl:analyze-string 和以下正则表达式:

(&journal_abbrevs;)[\s ]*([0-9]{{4}})[,][\s ][S]?[\.]?[\s ]?([0-9]{{1,4}})([\s ][(][0-9]{{1,4}}[)])?

你不需要看整个事情:)

&journal_abbrevs; 看起来像这样:

"example-String1|example-String2|example-String3|..."

我需要知道的是排除 &journal_abbrevs; 中的一个字符串。从这个正则表达式。例如,我不想匹配 example-String1。

关于如何做到这一点的任何想法?

4

1 回答 1

0

似乎 XSLT 正则表达式不支持look-around。所以我认为你不能得到一个不涉及从journal_abbrevs你的正则表达式中写出所有字符串的解决方案。相关问题

为了尽量减少写出的数量,您可以拆分journal_abbrevs为 sayjournal_abbrevs1和(或您决定使用多少个),journal_abbrevs2并且journal_abbrevs3只写出包含您希望排除的字符串的任何一个。如果journal_abbrevs1包含字符串,那么你最终会得到类似的结果:

((&journal_abbrevs2;)|(&journal_abbrevs3;)|example-String2|example-String3|...)...

如果它支持环视,你可以使用一个非常简单的:
(?!example-String1)(&journal_abbrevs;)...

于 2013-06-13T09:01:47.980 回答