私が(「I」フラグが提供する)大文字と小文字を区別しない方法で変数によって与えられた特定のテキストを検索したSchematron規則を作成しました:Schematrionの大文字と小文字を区別しないSQF:stringReplace
<sch:report test="matches(.,concat('(^|\W)',$phrase,'(\W|$)'),'i')" role="error"
sqf:fix="replaceWithKey">...</sch:report>
$フレーズ= '(フレーズ)'
ユーザーはクイックフィックスを使用してテキストを置き換えることができますが、クイックフィックスで大文字と小文字を区別しない方法を提供する方法はわかりません。私の最初のバージョンは、次のようになります。
<sqf:fix id="replaceWithKey">
<sqf:stringReplace regex="{$phrase}">
...
</sqf:stringReplace>
クイックフィックスは、ルール違反がすべての場合には認識されているものの、テキストの一部は、$フレーズとまったく同じ時価総額を持っている場合にのみ機能します。正規表現属性に "i"フラグ機能を利用する方法はありますか?
"作品"を明確にすることはできますか?クイックフィックスが動作した場合の結果と、そうでない場合の結果の違いは何ですか? – LarsH
例えば$ phrase = '(phrase)'の場合、schematronは「フレーズ」、「フレーズ」、「Phrase」などのテキストをハイライトします。クイックフィックスオプションは、これらのケースごとに提供されますが、stringReplace関数は "phrase"だけを置き換えます。 「フレーズ」と「Phrase」の場合は何も行いません。 $句に[Ph] [Hh] [Rs] [Ss] [Ee]のような正規表現が含まれていた場合、クイックフィックスが正しく機能しますが、これはすべてのケースで柔軟な解決策ではありません。 'i'修飾子をregex属性に含めることができない場合は、おそらくそれのための良い解決策はありません。 – proxx