2016-04-27 6 views
0

XSLTで$ SourceFileに割り当てられている "718322_c341b0-TEST_NOC_20160423121052.XML"という名前のintput xmlファイルがあります。しかし、それは一致しませんでしたXSLTで正規表現 wを処理する方法は?

<xsl:if test="matches($SourceFile, '^\w+-TEST.*')"> 

:私は$ SOURCEFILEは、次のコードを使用して「-TEST」の文字列が含まれているかどうかをテストしようとしています。そこでコードを更新しました

<xsl:if test="matches($SourceFile, '^[A-Za-z0-9_]+-TEST.*')"> 

私はマッチしました。私はより多くのテストを行い、次のコードも一致しました。

<xsl:if test="matches($SourceFile, '^\w+_\w+-TEST.*')"> 

私は混乱していると思いますが、\ wは[A-ZA-Z0-9_]を意味すると思いますか?この場合、なぜ\ wは機能しませんでしたか?アンダースコアを含む問題があるようです。ありがとう!

+0

テストシナリオを確認すると、表示されないコードのどこかに問題が発生します。 –

+0

どのXSLTプロセッサを使用していますか? https://www.w3.org/TR/xmlschema-2/#charcter-classesを参照してください。クラス '\ w'は' [#x0000-#x10FFFF] - [\ p {P} \ p {Z '\ p {C}]'は、 '句読点'、 'セパレータ'、 'その他の文字'を除いたすべての文字として説明されています。 –

答えて

0

https://www.w3.org/TR/xmlschema-2/#charcter-classesを参照してください、クラス\w[#x0000-#x10FFFF]-[\p{P}\p{Z}\p{C}]として定義され、_を除外するようで、「『句読点』、 『区切り』のセットと、 『その他』の文字を除くすべての文字」と説明しました。