1 件の投稿を表示中 (合計 12 個)
  • 作成者
    投稿
  • #11835
    Autumn
    参加者

    お世話になります。

    Windows Vista Home Premium
    EmEditor Professional (32-bit)Version 13.0.4

    正規表現で、置換を行った場合
    範囲の一番最初の行が置換されません。

    例1
    検索する文字列→^
    置換後の文字列→置換確認

    結果
    1行目 
    2行目 置換確認
    3行目 置換確認

    「選択した範囲のみ」を指定、指定なしどちらも同じ結果です。

    ちなみに、正規表現でない
    下記の置換は正常に動作しました
    「選択した範囲のみ」は指定なしです

    検索する文字列→//
    置換後の文字列→●

    結果
    1行目 ●
    2行目 ●
    3行目 ●

    #11836
    Yutaka Emura
    キーマスター

    kanon 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    ご迷惑をお掛けして申し訳ありません。

    置換前のテキストの内容を教えていただけますでしょうか?

    置換後は、

    1行目 
    2行目 置換確認
    3行目 置換確認

    ということですね。

    また、もう1つの場合の置換前の内容も教えていただけますか? こちらは、置換後は

    結果
    1行目 ●
    2行目 ●
    3行目 ●

    ですね。

    よろしくお願い申し上げます。

    #11837
    redakt55
    参加者

    試してみました。
    [ツール]→[カスタマイズ]→[検索]で,「正規表現が改行文字に一致することができる」にチェックが入っていると,そういう動作になりますね。外すと正常です。

    正規表現は ^ に限らず,検索でヒットする文字列が空文字列の場合は軒並みダメなようです。

    #11840
    Autumn
    参加者

    情報不足ですみません。お世話になります。

    動作のチェックが目的だったので
    置換前のテキスト状態は
    例1で白紙で何も入力していません。
    例2は//を1行目から3行目に入力

    また[ツール]→[カスタマイズ]→[検索]で,「正規表現が改行文字に一致することができる」にチェックが入っていたので
    外したところ、正常に動作するようになりました。

    ただ、「正規表現が改行文字に一致することができる」の意味がよくわからないので、チェックを入れた際はこのような現象が正しいのかどうか私にはわかりません。

    #11842
    Yutaka Emura
    キーマスター

    kanon 様

    ご説明ありがとうございました。

    これらでも理解しましたので、すでに不具合は修正いたしました。次のバージョンが公開されましたら修正されています。

    この度は、ご迷惑をお掛けして申し訳ありませんでした。

    今後もよろしくお願い申し上げます。

    #11843
    redakt55
    参加者

    「正規表現が改行文字に一致することができる」の意味ですが,これはメタ文字 .(ピリオド)の意味を切り替えるオプションです。
    ON だとピリオドは〈改行を含む全ての文字〉という文字クラスになります。
    OFF だとピリオドは〈改行以外の全ての文字〉という文字クラスになります。

    「正規表現が改行文字に一致することができる」は名称と意味が合っていないため改善を提案しましたが,受け容れられませんでした。
    ※何がおかしいかというと,ピリオドの意味を変えるオプションなのに「正規表現が」となっている点,もう一つは,マッチするかどうかというオプションなのに「一致する」という表現になっている点です。単に「ピリオドが改行文字にマッチする」にすればいいと思うのですが。

    そもそもグローバルな設定で正規表現の解釈が変わるというのは危険な仕様だと思っています。今書いた正規表現が正しいかどうかが,「カスタマイズ」ダイアログを見ないと判断できないわけです。
    他のエディターでは検索ダイアログについてたりしますね。

    #11844
    Yutaka Emura
    キーマスター

    redakt55 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    別に受け入れていないわけではないのですが、ご迷惑をお掛けして申し訳ありません。

    「. (ピリオド) が改行文字に一致する」 に変更したいと思います。マッチ (match) というのは、マイクロソフト言語ポータルによると、「一致」という訳になっていますが、これだと間違っているでしょうか?

    今後もよろしくお願い申し上げます。

    #11845
    redakt55
    参加者

    マイクロソフト言語ポータルを検索してみました。
    http://www.microsoft.com/Language/ja-jp/Search.aspx
    こんなサイトがあるって知りませんでした。
    英語→日本語で「match」を検索すると,「製品別用語」のほうに,確かに「一致」「完全一致」「一致したもの」がたくさん出てきました。
    言語ポータルの位置づけやこれらの用語の文脈が分からないので何とも言えませんが,単純に技術用語の対訳を表示しているのだとすれば,不適切な訳語と言い切っていいと思います。

    一般に,「一致」はぴったり重なり合うことを意味し,イコールの関係です。
    一方,英語の match は「釣り合う」とか「対等である」「匹敵する」「調和する」という意味,日本語の「マッチ」は「釣り合う」「似合う」「調和する」といった意味ですが,いずれも正規表現の用語としては文字列が検索パターンに当てはまるという意味です。イコールではありません。
    「正規表現 [0-9] は数字に一致する」という言い方は日常語の感覚でもおかしいですよね。

    #11847
    Autumn
    参加者

    Yutaka様

    素早い対応ありがとうございます。
    また例2に誤りがあったこと、お詫びします。
    (念の為、訂正しました)

    redakt55様

    詳しい説明ありがとうございました。
    使いどころは今一つピンとこないのが正直なところですが
    訂正版がでた際に動作を確認してみたいと思います。

    #11848
    t2
    参加者

    横からすみません
    専門用語は、よく知らないのですが
    あまり外来語が多いのもよくわかりません

    例文については

    「正規表現 [0-9] は数字に該当する」で

    意味が通ると思うので「マッチ」ではなく
    「該当」ではいかがでしょうか?

    #11849
    redakt55
    参加者

    t2 さんコメントありがとうございます。
    専門用語とくに外来語をやたらに使うのはいかがなものかという疑問ももっともですね。
    しかし,「マッチ」は正規表現の最も基本的で重要な概念および用語でして,正規表現を学んだ人が「マッチ」を知らないということはちょっと考えにくいのです。
    十分確立している用語を無理に日常語に置き換えると却って了解しづらくなることがあるので,「マッチ」がいいでしょう。

    #11850
    redakt55
    参加者

    誤って二重投稿してしまいました。この投稿削除していただけますか。

1 件の投稿を表示中 (合計 12 個)
  • このトピックに返信するにはログインしてください。