\0の意味の確認No.21795
マボカル さん 06/09/19 23:09
 
こんにちは。マボカルです。基本的なことかもしれませんが\0の意味に
ついて確認しようと思います。

\0というのは例えば置換の場合、検索文字列そのままを返すと理解して
いいのでしょうか?

例えばあるテキストの読点の数を数えるとして、検索文字に「、」を
入力して置換文字に同じように「、」を入れると、ダイアログで変換
された結果が数として表示されるので、それを検索文字の数とみなす
ことが出来ますが、

検索文字:、
置換文字:、

このような方法を取るときに、置換文字に\0を入れて同じような作業を
しようとすると、何度か作業を繰り返しているうちに結果が変わって
きます。変わるというのは検索文字である「、」が勝手に削除されたり
する現象のために、置換結果が変わってしまうのです。

私は\0という表記が、検索文字列そのままを返すと理解していましたが
そうではないのでしょうか?それともバグでしょうか。

ちなみに以下のテキストで行うと「、」の部分が文字化けしてしまう
現象も確認できました。

//////////////////////////////////////////////////////////////
台風13号は19日午後6時現在、北海道小樽市の西約270キロの海上を時速約2
0キロで北東に進んでいる。北海道と東北地方の日本海側では、20日朝にかけて海
上で非常に強い風や大しけが見込まれ、気象庁は警戒を呼びかけている。
 中心気圧は985ヘクトパスカル、最大風速約25メートル。20日朝までに北海
道に上陸する可能性がある。その後は温帯低気圧に変わり、オホーツク海に抜ける見
通し。同日午後6時までの予想24時間降水量は、北海道の多い所で80ミリ。
//////////////////////////////////////////////////////////////

検索文字:、
置換文字:\0

<結果報告>
1.削除された読点
見込まれ、気象庁は → 見込まれ気象庁は
2.文字化けした読点
降水量は、北海道の → 降水量は北海道の

ご確認およびご教授よろしくお願いします。


P.S:昔Ver6のベータ版の報告で正規表現についての似たような報告を
した覚えがありますが、それと関連しているようにも思えるのですが。


韓国版XP+秀丸英語版MaruoVer6.00

[ ]
RE:21795 \0の意味の確認No.21798
K'zawa さん 06/09/20 03:28
 
K'zawa/ユーザーです。


ヘルプには、
> 一般的正規表現のタグを使っている場合で、"\0"を記述すると
>検索文字列全体を指すことになってしまいますが、これは"\f"区切りを使った
>場合との互換で"\0"が使えてしまいます。
>一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。
となっています。
タグ使ってないケースですけど…。

[ ]
RE:21798 \0の意味の確認No.21802
秀丸担当 さん 06/09/20 11:10
 

一応ヘルプには
>>一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。
とはなっていますが、\fを使った方式の場合はできるはずなので、文字化けして
しまうのは問題です。
確認してみたところ、折り返し以降での\fを使った方式では、うまくできなくな
っていました。V6.00におけるバグでした。V6.01で修正させていただきます。

[ ]
RE:21798 \0の意味の確認No.21808
マボカル さん 06/09/20 14:35
 
K'zawaさん

ご教示ありがとうございました。

>ヘルプには、
>> 一般的正規表現のタグを使っている場合で、"\0"を記述すると
>>検索文字列全体を指すことになってしまいますが、これは"\f"区切りを使った
>>場合との互換で"\0"が使えてしまいます。
>>一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。
>となっています。
>タグ使ってないケースですけど…。

ヘルプにちゃんとありましたね。\0で検索するだけしかしなかったので
みつかりませんでした。"\f"区切りとの関係をもっとりかいしないと
いけないですね。
置換文字列に\をつかった表記の仕方では、検索文字列を( )でくくって
おいて、置換文字を\1にすればいいことですよね。
ありがとうございました。



[ ]
RE:21802 \0の意味の確認No.21809
マボカル さん 06/09/20 14:36
 
秀丸担当さん

ありがとうございます。

>一応ヘルプには
>>>一般的正規表現のタグを使う場合は"\0"は使わないように注意してください。
>とはなっていますが、\fを使った方式の場合はできるはずなので、文字化けして
>しまうのは問題です。
>確認してみたところ、折り返し以降での\fを使った方式では、うまくできなくな
>っていました。V6.00におけるバグでした。V6.01で修正させていただきます。

\0の使い方については今後注意します。また文字化けしてしまうのは
やっぱりバグでしたね。報告しておいて良かったです。

[ ]