私はmarkdownと同様の入力を受け入れ、XDPコンテンツ(PDFコンテンツのためのAdobe XML表現)を出力するXSLT 2.0のスタイルシートを構築しています。XSLTでregexを構成してエンティティ参照と一致しないようにするには?
*や[などの特殊文字を許可するには、入力に\ *または\ [、それぞれエンコードできます。
マークダウンを処理する前に、そのようなエスケープシーケンスをエンティティリファレンスに変換しています。 \ *〜* \ [to &#91]であり、リテラル*や[文字など]とのマッチングが必要な正規表現では一致しないようにしています。
を編集します。私は問題が[と]であると思ったが、指摘したように、エンティティとしてのエンコーディングは私が思ったようにうまくいかず、同じようにマッチする。
おそらく、このような値を二重にエンコードすることを検討しています。たとえば、\ *を& amp ;#42に置き換えます。
XSLT出力では、この二重エンコーディングを削除する方法があるので、*と出力されます。
regex="\*(.+?)\1"
最終\1
がされている必要があることを別の\*
:
私は、エンティティやアンパサンドを含むもののほか明確な舵取りでしょう。競合する条約と矛盾しない他の多くの選択肢があります。 \ *を§42で置き換えます。 –
ありがとうございます。私はそれについてさらに考えていて、同じ結論に達しました。 – dave