Applekdz
@Applekdz

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

正規表現で、\p{Alpha}の場合は、漢字やひらがなもマッチする対象になるのでしょうか?

多くのサイトでは、半角アルファベットのみと書かれています。
Onigmoは、漢字とひらがなにもマッチします。

漢字とひらがなにもマッチするのは正常な動作でしょうか?

0

3Answer

Comments

  1. @Applekdz

    Questioner

    ありがとうございます。
    結論はどちらになりますでしょうか?
    EmEditorでは、\p{Alpha}は、漢字にもマッチするということになってますが、ほとんどのサイトでは、アルファベットだけとなっていました。
    よろしくお願いいたします。

他の方の回答にもありますが

正規表現エンジンに、従来の Boost.Regex に加えて、Onigmo (鬼雲) が選択できるようになりました。正規表現エンジンに Onigmo を選択すると、\p{Han} (漢字)、\p{Hiragana} (ひらがな)、\p{Katakana} (カタカナ) といったより多くの文字種を使用できるようになります。
https://www.emeditor.org/ja/history_v15_7.html

のとおりじゃありませんか?

「結論はどちら」というより正規表現エンジンの種類によって結果が変わるんじゃないでしょうか?

2Like

Comments

  1. @Applekdz

    Questioner

    ありがとうございます。
    質問の趣旨としましては、漢字の\p{Han}とかを含めた質問ではなく、"\p{Alpha}"と書いたときに何にマッチするかだけに限定した質問になります。

    Onigmoは、\p{Alpha}と書くと漢字にも反応しましたのでおかしいと思いました。
    これは正規表現エンジンでマッチ対象が変わるようなあいまい定義のものでしょうか?
    よろしくお願いいたします。
  2. 失礼読み違えてました

    具体的にはどんなワードに対してどんな正規表現マッチするんですか?
    実行環境はEmEditorのどのモードなんでしょう?
  3. @Applekdz

    Questioner

    ありがとうございます。
    EmEditorやMerryの正規表現のOnigmoで\p{Alpha}で検索して頂きますと、漢字にも反応します。
    それでおかしいと思ったのです。

    これは\p{Alpha}の正当な定義の反応なのか、バグなのかという質問になります。
    試して頂ければ漢字に反応します。
    ほとんどのサイトでは\p{Alpha}は、アルファベットのみと同じ意味だと書かれていました。
    別に[A-Za-z]で書いて使わなければ良いだけなのですが、Onigmoのバグなのか気になりましたので質問させていただきました。

\p{Alpha}

実装エンジンが基本、拡張の仕様の違いで、alnumとalphaを区別するか?区別できないのではとおもいます。

迷わず、

[a-zA-Z0-9]  [a-zA-Z]

でしょうか?

1Like

Comments

  1. @Applekdz

    Questioner

    ありがとうございます。
    正式なマッチの定義では、\p{Alpha}は、漢字はマッチしないのが、Onigmoの不具合になっていると言うことでしょうか?
    よろしくお願いいたします。
  2. Onigmoの不具合ではなく、正規表現の基本仕様に準拠した振る舞いで、その限界が漢字を区別できないと考えられます。最近のエンジンは拡張仕様に準拠しており、その振る舞いを【\p{Alpha}は、アルファベットのみ】と解説してます。
  3. @Applekdz

    Questioner

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

Your answer might help someone💌