RE:28421 あいまい検索w@「,」No.28465
colder さん 10/06/23 22:06
 
colderです

hmjre.dll v3.21で更に詳しく試したみたところ、以下の問題が見つかりました。

無視する文字に <>tf を指定しているとき、\<、\>、\t、\fが使えない。


無視する文字に 16進数字を指定しているとき、\x20、\040などが使えない。


bar foo を同一視、正規表現on、検索文字列「bar{2}」で「barr」にマッチせず、
「foofoo」、「barbar」などにマッチする。
  多分、(?:bar|foo){2}みたいな感じに変換していると思われるが(?:bar{2}|foo)み
たいな感じに変換して欲しい。


全角半角区別せずで、検索文字字列「エコ」で「エゴ」にもヒットする。


正規表現on、全角半角区別せずで検索文字列「キ[ビ]ン」で「キビン」にマッチせず、
「ギン」、「キヒン」にマッチする


ひらがなカタカナ区別せず、全角半角区別せずで、検索文字列が「エゴ」のときに
「エゴ」マッチしない。


濁音/半濁音を無視するで、「ウ」と「ヴ」、「ゝ」と「ゞ」、「ヽ」と「ヾ」を同
一視しない。


大きい「あ」小さい「ぁ」区別しないで、「カ」と「ヵ」、「ケ」と「ヶ」を同一視
しない。


これは要望ですが、ひらがなカタカナ区別せずで、ひらがな/カタカナ用の繰り返し
記号「ゝ」と「ヽ」、「ゞ」と「ヾ」を同一視してほしい。


http://www.maruo.co.jp/hidesoft/2/x28174_.html#28282にも書きましたが、
foo bar\ を同一視するように設定していると「正規表現パターンでのカッコの対応
があっていません」とエラーが出る。








[ ]
RE:28465 あいまい検索w@「,」No.28470
秀まるお2 さん 10/06/24 09:16
 
 とりあえず、直せそうな所から直していってみます。

[ ]
RE:28465 あいまい検索w@「,」No.28479
秀まるお2 さん 10/06/24 17:47
 
 とりあえず今日1日ではすべて解決出来なかったので、出来た所までお返事さ
せていただきます。

> 無視する文字に <>tf を指定しているとき、\<、\>、\t、\fが使えない。

 \< \> については再現しました。修正出来ました。

 \tは、こちらでテストした限りは使えるようでした。

 \fは旧タグ付き正規表現用の物なので、そもそも何にもヒットしないし、今か
ら\f区切りでタグ付き正規表現の置換をするということも無いと思うので、これ
以上詳しいテストは省略させていただきます。

> 無視する文字に 16進数字を指定しているとき、\x20、\040などが使えない。

 \x20 等については再現できました。修正も出来ました。

 \040等については、そもそもHmJre.dllでは「\0〜\9」がタグ付き正規表現の
意味になってしまってまして、3桁の数字で文字コード指定するということ自体
が出来ないです。(HmJre.dllを作った時点でそういう仕様変更になってしまっ
たのだと思う。どこにも書いてなかったらすみません。)

> bar foo を同一視、正規表現on、検索文字列「bar{2}」で「barr」にマッチせず、
> 「foofoo」、「barbar」などにマッチする。
>   多分、(?:bar|foo){2}みたいな感じに変換していると思われるが(?:bar{2}|foo)み
> たいな感じに変換して欲しい。

 たしかにおっしゃる通りの変換をしてしまってました。「+ ? * {n}」の系が
あった場合は直前の文字だけ別扱いになるようにして、うまく動作するように修
正出来ました。


> http://www.maruo.co.jp/hidesoft/2/x28174_.html#28282にも書きましたが、
> foo bar\ を同一視するように設定していると「正規表現パターンでのカッコの対応
> があっていません」とエラーが出る。

 見逃しててすみません。今直せました。

> 正規表現on、全角半角区別せずで検索文字列「キ[ビ]ン」で「キビン」にマッチせ
>ず、
> 「ギン」、「キヒン」にマッチする

 [ビ]の中の「ビ」が半角の「ヒ゛」に変換されてしまって、結果としておか
しなことになってしまってました。

 半角/全角区別しない場合のカナについての処理を、内部的に全角に変換した
形でマッチングするように直しまして、それで結果として修正出来たと思ったん
ですが、今いろいろテストしたらまだダメなパターンが出てきました、今ちょっ
と対策を考え中です。

 ということで中間報告とさせていただきます。

[ ]
RE:28479 あいまい検索w@「,」No.28480
colder さん 10/06/24 18:05
 
> \tは、こちらでテストした限りは使えるようでした。

こちらは再確認したところ、無視する文字に tと\ が両方あるときに使えませんでし
た。

>
> \fは旧タグ付き正規表現用の物なので、そもそも何にもヒットしないし、

こちらは再確認したところ、再現できなくなっていました。
すいませんでした。



[ ]
RE:28479 あいまい検索w@「,」No.28482
colder さん 10/06/24 18:34
 
> \040等については、そもそもHmJre.dllでは「\0〜\9」がタグ付き正規表現の
>意味になってしまってまして、3桁の数字で文字コード指定するということ自体
>が出来ないです。(HmJre.dllを作った時点でそういう仕様変更になってしまっ
>たのだと思う。どこにも書いてなかったらすみません。)

置換文字列では\040などは使えないことは確認できましたが、

検索文字列中では8進での文字コード指定以外の正規表現が使われていないときに限
って、\001〜\077の範囲で8進での文字コード指定ができるようです。
これについては完全にできなくしても構わないと思います。



[ ]
RE:28465 あいまい検索w@「,」No.28515
秀まるお2 さん 10/06/28 09:32
 
> 全角半角区別せずで、検索文字字列「エコ」で「エゴ」にもヒットする。
> 正規表現on、全角半角区別せずで検索文字列「キ[ビ]ン」で「キビン」にマッチせ
>ず、
> 「ギン」、「キヒン」にマッチする
> ひらがなカタカナ区別せず、全角半角区別せずで、検索文字列が「エゴ」のときに
> 「エコ゛」マッチしない。

 この辺全部直せたと思います。

 「半角全角区別しない」がONのケースで、「濁音/半濁音」を区別するモード
と区別しないモードとでやり方を変えて、両方のケースでうまく対応出来たと思
います。

 もうちょっといろんなパターンでテストしてみて何も問題が無ければ、今回考
えた新しい方式でなんとか行こうと思います。

> 濁音/半濁音を無視するで、「ウ」と「ヴ」、「ゝ」と「ゞ」、「ヽ」と「ヾ」を同
> 一視しない。

 同一視指定する対象に入ってませんでした。追加させていただきます。

> 大きい「あ」小さい「ぁ」区別しないで、「カ」と「ヵ」、「ケ」と「ヶ」を同一視
> しない。

 これも考えてませんでした。これまた追加させていただきます。

> これは要望ですが、ひらがなカタカナ区別せずで、ひらがな/カタカナ用の繰り返し
> 記号「ゝ」と「ヽ」、「ゞ」と「ヾ」を同一視してほしい。

 これも同一視指定の仲間に追加させていただきます。
 

[ ]
RE:28480 あいまい検索w@「,」No.28516
秀まるお2 さん 10/06/28 09:36
 
 \tの件は再現出来ました。修正させていただきます。

[ ]
RE:28482 あいまい検索w@「,」No.28519
秀まるお2 さん 10/06/28 16:35
 
> これについては完全にできなくしても構わないと思います。

 たしかに中途半端な処理が入ってしまってました。

 「\ooo」の8進数指定は一切使えない仕様にします。

[ ]