您好我有一个样式表,我使用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匹配。
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
似乎XSLT正则表达式不支持look-around。所以我认为你不能得到一个解决方案,不涉及在你的正则表达式中写出journal_abbrevs
的所有字符串。 Related question
为了尽量减少写出的数量,您可以将journal_abbrevs
分成说journal_abbrevs1
,journal_abbrevs2
和journal_abbrevs3
(或您决定使用多少)并且只写输出包含您要排除的字符串的那个。如果journal_abbrevs1
包含字符串,那么您最终会得到类似的内容:
((&journal_abbrevs2;)|(&journal_abbrevs3;)|example-String2|example-String3|...)...
如果它支持look-around,您可以使用一个非常简单的方法:
(?!example-String1)(&journal_abbrevs;)...