- 作成者投稿
- 2013年7月29日 4:00 am #11835Autumn参加者
お世話になります。
Windows Vista Home Premium
EmEditor Professional (32-bit)Version 13.0.4正規表現で、置換を行った場合
範囲の一番最初の行が置換されません。例1
検索する文字列→^
置換後の文字列→置換確認結果
1行目
2行目 置換確認
3行目 置換確認「選択した範囲のみ」を指定、指定なしどちらも同じ結果です。
ちなみに、正規表現でない
下記の置換は正常に動作しました
「選択した範囲のみ」は指定なしです検索する文字列→//
置換後の文字列→●結果
1行目 ●
2行目 ●
3行目 ●2013年7月29日 4:42 am #11836Yutaka Emuraキーマスターkanon 様
いつも EmEditor Professional をお使いいただき、誠にありがとうございます。
ご迷惑をお掛けして申し訳ありません。
置換前のテキストの内容を教えていただけますでしょうか?
置換後は、
1行目
2行目 置換確認
3行目 置換確認ということですね。
また、もう1つの場合の置換前の内容も教えていただけますか? こちらは、置換後は
結果
1行目 ●
2行目 ●
3行目 ●ですね。
よろしくお願い申し上げます。
2013年7月29日 4:45 am #11837redakt55参加者試してみました。
[ツール]→[カスタマイズ]→[検索]で,「正規表現が改行文字に一致することができる」にチェックが入っていると,そういう動作になりますね。外すと正常です。正規表現は ^ に限らず,検索でヒットする文字列が空文字列の場合は軒並みダメなようです。
2013年7月29日 11:16 pm #11840Autumn参加者情報不足ですみません。お世話になります。
動作のチェックが目的だったので
置換前のテキスト状態は
例1で白紙で何も入力していません。
例2は//を1行目から3行目に入力また[ツール]→[カスタマイズ]→[検索]で,「正規表現が改行文字に一致することができる」にチェックが入っていたので
外したところ、正常に動作するようになりました。ただ、「正規表現が改行文字に一致することができる」の意味がよくわからないので、チェックを入れた際はこのような現象が正しいのかどうか私にはわかりません。
2013年7月30日 12:10 am #11842Yutaka Emuraキーマスターkanon 様
ご説明ありがとうございました。
これらでも理解しましたので、すでに不具合は修正いたしました。次のバージョンが公開されましたら修正されています。
この度は、ご迷惑をお掛けして申し訳ありませんでした。
今後もよろしくお願い申し上げます。
2013年7月30日 12:43 am #11843redakt55参加者「正規表現が改行文字に一致することができる」の意味ですが,これはメタ文字 .(ピリオド)の意味を切り替えるオプションです。
ON だとピリオドは〈改行を含む全ての文字〉という文字クラスになります。
OFF だとピリオドは〈改行以外の全ての文字〉という文字クラスになります。「正規表現が改行文字に一致することができる」は名称と意味が合っていないため改善を提案しましたが,受け容れられませんでした。
※何がおかしいかというと,ピリオドの意味を変えるオプションなのに「正規表現が」となっている点,もう一つは,マッチするかどうかというオプションなのに「一致する」という表現になっている点です。単に「ピリオドが改行文字にマッチする」にすればいいと思うのですが。そもそもグローバルな設定で正規表現の解釈が変わるというのは危険な仕様だと思っています。今書いた正規表現が正しいかどうかが,「カスタマイズ」ダイアログを見ないと判断できないわけです。
他のエディターでは検索ダイアログについてたりしますね。2013年7月30日 2:33 am #11844Yutaka Emuraキーマスターredakt55 様
いつも EmEditor Professional をお使いいただき、誠にありがとうございます。
別に受け入れていないわけではないのですが、ご迷惑をお掛けして申し訳ありません。
「. (ピリオド) が改行文字に一致する」 に変更したいと思います。マッチ (match) というのは、マイクロソフト言語ポータルによると、「一致」という訳になっていますが、これだと間違っているでしょうか?
今後もよろしくお願い申し上げます。
2013年7月30日 3:55 am #11845redakt55参加者マイクロソフト言語ポータルを検索してみました。
http://www.microsoft.com/Language/ja-jp/Search.aspx
こんなサイトがあるって知りませんでした。
英語→日本語で「match」を検索すると,「製品別用語」のほうに,確かに「一致」「完全一致」「一致したもの」がたくさん出てきました。
言語ポータルの位置づけやこれらの用語の文脈が分からないので何とも言えませんが,単純に技術用語の対訳を表示しているのだとすれば,不適切な訳語と言い切っていいと思います。一般に,「一致」はぴったり重なり合うことを意味し,イコールの関係です。
一方,英語の match は「釣り合う」とか「対等である」「匹敵する」「調和する」という意味,日本語の「マッチ」は「釣り合う」「似合う」「調和する」といった意味ですが,いずれも正規表現の用語としては文字列が検索パターンに当てはまるという意味です。イコールではありません。
「正規表現 [0-9] は数字に一致する」という言い方は日常語の感覚でもおかしいですよね。2013年7月30日 12:59 pm #11847Autumn参加者Yutaka様
素早い対応ありがとうございます。
また例2に誤りがあったこと、お詫びします。
(念の為、訂正しました)redakt55様
詳しい説明ありがとうございました。
使いどころは今一つピンとこないのが正直なところですが
訂正版がでた際に動作を確認してみたいと思います。2013年7月31日 10:52 pm #11848t2参加者横からすみません
専門用語は、よく知らないのですが
あまり外来語が多いのもよくわかりません例文については
「正規表現 [0-9] は数字に該当する」で
意味が通ると思うので「マッチ」ではなく
「該当」ではいかがでしょうか?2013年8月1日 1:23 am #11849redakt55参加者t2 さんコメントありがとうございます。
専門用語とくに外来語をやたらに使うのはいかがなものかという疑問ももっともですね。
しかし,「マッチ」は正規表現の最も基本的で重要な概念および用語でして,正規表現を学んだ人が「マッチ」を知らないということはちょっと考えにくいのです。
十分確立している用語を無理に日常語に置き換えると却って了解しづらくなることがあるので,「マッチ」がいいでしょう。2013年8月1日 1:34 am #11850redakt55参加者誤って二重投稿してしまいました。この投稿削除していただけますか。
- 作成者投稿
- このトピックに返信するにはログインしてください。