置換検索機能で濁点なしで検索しても濁点付きがヒットしてしまう

検索:か|さ|た|は
他のオプション:現在の選択範囲のみ、正規表現
[すべて検索]

かさたはがざだばぱ

何か良い方法ありますか?

1 Like

解決策ではありませんが、自分の環境でも再現しました。
分音記号を区別するにチェックを入れた上で、一度、検索をかけて、そのままの状態で置換検索を開き、実行すると区別されるようです。
なんか不具合な気がします。

Version: 7.3.5.2 / LibreOffice Community
Build ID: 30(Build:2)
CPU threads: 4; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Ubuntu package version: 1:7.3.5-0ubuntu0.22.04.1
Calc: threaded

追記
すいません。検証のやり方がまずかったです。カタカナで検証してしまいました。しかも一文字で検索しました。
例えばセルに 「バブル」 とある場合、「ハ」 で検索すると バブル のセルがヒットします。ハフで検索するとヒットしませんでした。
ハで検索しても、全角と半角を区別するにチェックが入っていればヒットしませんでした。(分音記号を区別するにはチェックを入れています)
まずいことをしてすいませんでした。

1 Like

質問の意図が掴みきれていませんが、Calcは文字単位ではなくセル単位での検索なので、1つのセルに「かさたはがざだばぱ」のように入っていればヒットするかと思います。

もう少し状況を説明いただけるとありがたいです。サンプルファイルをアップいただくと分かりやすいかもしれません。


なお、ハックフェストで教えてもらいましたが、WriterとCalcで動作が違っています。

  • Writer:「分音記号を区別する」のチェックで検索結果がかわる
  • Calc:「分音記号を区別する」のチェックにかかわらず、濁点などは検索されない

WriterとCalcの挙動が違うのは意図的なのか、バグなのかは不明です。

1 Like

あいまい検索にチェックが入っていればチェックをはずしてみてください

2 Likes

Calcの場合、あいまい度によらず、「あいまい検索」のチェックが入っていないと、
「分音記号を区別する」の設定が適用されない(内部的には「区別しない機能」が無効なので全て区別する)みたいですね。Writerは「あいまい検索」のチェックが入ってなくとも「分音記号を区別する」の設定が適用されます。

https://opengrok.libreoffice.org/xref/core/sc/source/core/data/table6.cxx?r=c690d7c3#847

なお、内部的にはCTLの名を冠するこいつ、CTL以外にも影響します。NFDにおけるカテゴリMを削除します。

https://opengrok.libreoffice.org/xref/core/include/i18nutil/transliteration.hxx?r=04af4e4f&fi=IGNORE_DIACRITICS_CTL#122
https://opengrok.libreoffice.org/xref/core/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx?r=c7551e8a#26

濁点U+3099は、Nonspacing Mark (Mn)なのでMです。

2 Likes

あいまい検索にチェックが入っていればチェックをはずしてみてください

たしかに、Calcで、あいまい検索をオンにすると、「か」で「が」がヒットするようになりました。

この質問のケースでは、「あいまい検索」をオフにすると解決する可能性がありますね。

区別して検索する時は

:ballot_box_with_check: 分音記号を区別する

にチェックを入れます。

2 Likes

:heavy_check_mark:分音記号を区別する
でも変わらずヒットします

報告だけで恐縮ですが。 うちではnobuさん助言の通り[分音記号を区別する]のチェックで濁点・半濁点は検索結果から外れてくれてるようです。sakonさん報告のような、操作状況によって挙動が変わるようにも見えていません(今のところ)。 ただし、これはまぁ別の問題ですが…、[全角と半角を区別する]にもチェックを入れていないと、部分的に該当文字の次の文字がヒットする挙動が見られます。 確認した環境はWin10上の7.4.0.3、7.3.6.2、7.3.5.2およびubuntu 20.04(VirtualBox)上の7.3.5.2です。 ``` Version: 7.4.0.3 (x64) / LibreOffice Community Build ID: f85e47c08ddd19c015c0114a68350214f7066f5a CPU threads: 8; OS: Windows 10.0 Build 19044; UI render: default; VCL: win Locale: ja-JP (ja_JP); UI: ja-JP Calc: CL ```

利用環境情報や現象発生時の[検索と置換]ダイアログボックスのスクリーンショット、検索対象とするテスト文字列例が共有できると再現検証が進みやすいかも?

申し訳ありません、うっかりタグを見落として、Writerでのことと思いこんでしまっていました。Calcの話だったのですね。
既にenokiさんがコメントくださってますが、CalcではWriterとは挙動が異なり、[分音記号を区別する]を指定しようがしまいが、「か|さ|た|は」の正規表現検索で「がざだばぱ」はヒットしません(少なくともうちでは。 sakonさん報告のようにカタカナではまたややこしいようですが…)。
一方で、これもCalcはWriterと違って、検索対象が文字ではなくセルなので(置換は文字単位で行われます)、 同一セル内に「がざだばぱ」と「かさたは」が混在しているような場合には、そのセルも検索にヒットします。ご質問で「かさたはがざだばぱ」と例示されてましたので、もしかしてそういうセルがヒットしてるのかなと思いました。
この辺りは、検索なさってるシートの例とそこでの挙動をもう少し詳しく共有しないと、話が噛み合いにくいかも知れません。

1 Like