Wikiでキャメルケースリンクを無効にすると"++"がリンクされてしまう問題

Re: Wikiでキャメルケースリンクを無効にすると"++"がリンクされてしまう問題

- Mikio Ikeda の投稿
返信数: 0
少し試してみましたが、やはりうまくいきませんでした。先ほど提案した改造では、一致する文字列はないのですが、その分が空になり、結局他の部分が一致すると一致してしまいます。簡単に逃げる方法は、Shirai さんが提案したとおり、ありえない文字にむりやり一致させることです。

たとえば、以下のように改造して、さらに各々のパターンに一致する部分を入れ替えると、とりあえずはうまくいきます。しかし、これもやはり完全な方法ではありません。稀にあるかもしれない Never Match This String にマッチするかもしれません。

ちなみに、\337-\377 は ISO-8859-1 のアクセント記号付き文字(小文字)で、\300-\336は、同大文字だと思います。UTF-8 の場合は、最初の256文字は ISO-8859-1 と同じなので、とりあえずは大丈夫だとおもます。

#### BEGIN MOODLE CHANGES - to remove auto-camelcase linking.
global $moodle_disable_camel_case;
if ($moodle_disable_camel_case) {
define("EWIKI_CHARS_L", "");
define("EWIKI_CHARS_U", "");
define("EWIKI_CAMEL_REG0", "(Never Match This String)");
define("EWIKI_CAMEL_REGEX", EWIKI_CAMEL_REG0);
}
else {
#### END MOODLE CHANGES

define("EWIKI_CHARS_L", "a-z_µ¤$\337-\377");
define("EWIKI_CHARS_U", "A-Z0-9\300-\336");

#### BEGIN MOODLE CHANGES

define("EWIKI_CAMEL_REG0", "[".EWIKI_CHARS_U."]+[".EWIKI_CHARS_L."]+");
define("EWIKI_CAMEL_REGEX", "(".EWIKI_CAMEL_REG0."){2,}");
}
#### END MOODLE CHANGES