• 締切済み

全角文字にマッチする正規表現はあるんでしょうか?

""で囲まれた範囲に含まれる全角文字を消したいのですが、正規表現で出来るんでしょうか? ご存知の方よろしくお願いします。

  • arlie
  • お礼率25% (14/54)
  • Perl
  • 回答数1
  • ありがとう数3

みんなの回答

  • bagyo
  • ベストアンサー率40% (16/40)
回答No.1

こんにちわ。 全角文字を消すのでしたら、例えばasciiコード以外にマッチするものを削除するという方法はいかがでしょうか?(perlが日本語対応している必要がありますし、文字コードによっては上手くいかないかもしれませんが) s/[^a-zA-Z0-9_]+//g; または、 s/\W+//g; 一応、EUCでは動くはずです。

arlie
質問者

補足

一応Windows環境で作成していますので、s-jisということで、こんな風にしたら出来そうでした。 s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])//g; ありがとうございました。

関連するQ&A

  • 正規表現で、全角文字を半角文字にする方法

    エディター等で使用できる、通常の正規表現で、例えば、全角文字を半角文字にする方法はありますでしょうか? ※つまり、PerlのtrやPHPのstrtrのようなことです。 例えば、正規表現対応のエディターで、サイト全体の全角英数字を半角英数字にするような処理をしたいのですが。

    • ベストアンサー
    • Perl
  • FrexibleRenamerで【全角→半角】の正規表現は?

    FrexibleRenamerで【全角→半角】の正規表現は? FrexibeRenamerにあらかじめ用意されている【全角→半角】で変換したところ、 !#$%&’() _などの文字が変換されませんでした。 【全角→半角】は英数に限られているのでしょうか。 正規表現を使おうとしたのですが【全角→半角】の指定方法がわかりません。 これらの記号を【全角→半角】する方法を教えて頂けないでしょうか。 階層丸ごと全フォルダ名と全ファイル名を変更したいのでFrexibleRenamerを使いました

  • 全角カタカナの正規表現

    if (preg_match('/[ァ-ヶー]+/', $value, $match )) { print ("$value"."はカタカナです。"."($match[0])"."<br />") } else { print ("$value"."はカタカナではない。<br />"); } という感じで全角カタカナにマッチさせる正規表現を使いたいのですが、このやり方だと「全角カタカナを含んでいる…」という表現になってしまいます。ある文字列が「すべて全角カタカナである」という正規表現を考えているのですが、なかなかうまくいきません。逆引きのサンプルなんかでもなかなか見つからなくて困っています。  同様に「すべて平仮名にマッチ!」というのにも応用できると思うのですが、なかなかうまく行きません。  是非、そのやり方やヒントをおしえてください。  マルチバイト対応なので[ぁ-ん]のような形で表記できます。またPerl互換(preg_match)で作っているので、Perlに詳しい方も是非是非おしえてください。

    • ベストアンサー
    • PHP
  • 正規表現の全角、半角、大文字、小文字の区別について

    こんにちわ 最近正規表現の勉強をし始めたのですが フォームから入力された$keywordの 全角、半角、大文字、小文字の区別をなくすには どうすれば可能なのでしょうか? 今のところ効率などは求めていませんので 初心者が理解できるくらい簡単なご返答をよろしくお願いします

    • ベストアンサー
    • Perl
  • Java正規表現で全角記号

    Javaの正規表現 で「全角記号のみ」というのがどうしてもわかりません。 今Javaでプログラムを作っていてString name が nullの時と、全角記号半角記号スペースのみ、空文字の時に returnをnullにするif文を考えています。 しかし、半角記号と全角記号の正規表現がサッパリわかりません 。とくに全角記号が全くわかりません。 種類が多すぎてきりがないのです。 どうやって表現したらいいのでしょうか? [、-○]などがネットにはありましたが、エラーになります。 どうか教えてください! 追加の詳細が必要なときはコメントいただけましたら返信いたします。 よろしくお願いします。

  • 正規表現について

    全角文字と半角文字のスペースの有無を正規表現で検出したいと思っております。 書き方をお教え頂けますでしょうか。 よろしくお願いいたします。

  • 「マッチしない」正規表現の書き方

    正規表現について、おたずねします。 文字列 abc,def,ghi のいずれかにマッチする正規表現は (abc|def|ghi) ですよね。 それでは、「abc,def,ghi のいずれにもマッチしない」正規表現は、どう書けばいいのでしょうか? あちこち調べましたが、どうしてもわかりません。 ただし、if $a =~ /(abc|def|ghi)/ などで、=~ を !~ に直す、というのはナシです。あくまでも右辺の式の中で表現したいのですが…

  • 正規表現で5文字切抜き

    正規表現で5文字切抜き 正規表現について悩んでいます。秀丸エディタで正規表現を使いたいと思っています。 各行に任意の文字列(スペース、ハイフン、カンマ、アンダーバー、半角全角英数等含む)があります。 先頭行から5文字を残して残りは削除したいと思います。 5文字以下はそのまま残したいと思います。 例) aaaaabb⇒aaaaa ab cdef⇒ab cd a ⇒ a aa⇒aa 「^.{1,5}」とやると、先頭から5文字選択できるのはわかります。 「^.{1,5}(?=.+)」とやっても選択できるのはわかります。 ただし、6文字以上は削除とした場合、どのように正規表現を組み立てればよいでしょうか?

  • 正規表現にて文字数をチェックするには?

    正規表現にて、入力した文字列が、 (1)アルファベットABC、 および (2)「'」(アポストロフィ)から始まるアルファベットDEF で構成された文字列で、文字列の長さが1~10の範囲にあるかどうかを検査する正規表現を作成しようとして難航しています。 以下だと、「アポストロフィ+文字」の二文字が10回繰り返しで20文字の場合もtrueになります。 とにかく全体で10文字以内かどうかを検査する正規表現の書き方をご存じの方、教えてください。 /(([A-C]|'[D-F]){1,10})/

  • 正規表現を利用した文字列置換

    javaにて、正規表現を利用して、半角・全角スペース、改行のみで形成されている文字列を空文字にしたいのですが、どのような正規表現を作成すればよろしいでしょうか?

    • ベストアンサー
    • Java