• 締切済み

全角の間に挟まれた1桁の半角英数字を全角に置き換えたいのですが

タイトルの通りなのですが、具体的には リンゴを1個買いました→リンゴを1個買いました(半角1を全角1に) リンゴを10個買いました→リンゴを10個買いました(半角10は半角10のまま) よろしくお願いします。

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.5

> 私は秀丸を使っていますが 文字コードを気にしなくていいので秀丸マクロが良いと思います。 以下のコードをコピーして「NumZH.mac」などという名前で「\Program Files\Hidemaru」フォルダに保存してください。 あとはメニューの「マクロ」→「マクロ実行」で「NumZH.mac」を選択すれば実行されます。 --------------- gofiletop; while (1) { searchdown "[0-9]+", regular; if (!result ) break; tozenkakuhira; escape; } gofiletop; while (1) { searchdown "[0-9][0-9]+", regular; if (!result ) break; tohankaku; escape; } --------------- 数字が1桁の場合→全角に 数字が2桁以上の場合→半角に 処理は、まず半角数字を“すべて”全角に一度変換してしまってから、その後で2桁以上連続する全角数字を半角に変換しています。 ★ちょっと解らなかった点があります。 1.「全角の間に挟まれた」と言う部分、半角の英数やスペース文字などに挟まれた数字は対象にならないのでしょうか。上記マクロはこの点を考慮していません(区別していない)。 2.「半角の1桁の英数」と言う部分、このマクロでは数字だけを対象にしていますが、英文字も対象にしたいなら、正規表現部分を変更すれば可能です。

全文を見る
すると、全ての回答が全文表示されます。
  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.4

require "jcode.pl"; while (<>) { jcode::convert(\$_, "euc"); while (/(?<!\d)(\d)(?!\d)/) { my $num = $1; jcode::tr(\$num, "0-9", "0-9"); $_ = $` . $num . $'; } jcode::convert(\$_, "元の文字コード"); print; } # あまりきれいなコードではありませんが (^^;

全文を見る
すると、全ての回答が全文表示されます。
  • feininger
  • ベストアンサー率41% (74/180)
回答No.3

対象とする文字コードはなんですか? とりあえずShift-JISと仮定すると・・・ $str = 'リンゴを1個2個3個10個20個30個買いました'; $str =~ s/([\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])(\d)([\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])/$1.chr(0x82).chr(hex($2)+0x4f).$3/eg; $str =~ s/([\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])(\d)([\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])/$1.chr(0x82).chr(hex($2)+0x4f).$3/eg; print $str; 面倒なので対象は数字のみとしていますが、A-Zなども同様に変換できるかと。 EUCならもっと簡単になるかも。

全文を見る
すると、全ての回答が全文表示されます。
noname#129708
noname#129708
回答No.2

私はフリーソフトの「てきすたー」というエディタを使っています。 これは「検索、置き換え」が出来ます。また、大文字を小文字に変換したりも出来ますから、おそらく、ご希望に添えるんじゃないでしょうか。 以前、「XTR」というソフトを使っていました。これは「テキスト加工」では最高でしたが、ニフティ会員でしか入れません。

参考URL:
http://www.vector.co.jp/soft/win95/writing/se067718.html
pretty_moetan
質問者

補足

またまた言葉足らずですみません。 質問しているのは正規表現のことなんです。 説明不足でごめんなさい。

全文を見る
すると、全ての回答が全文表示されます。
  • viceabu
  • ベストアンサー率18% (3/16)
回答No.1

かな入力のままで1と0を押すと、そのまま大きい「10」になりませんか?? あとは、カナのまま「1」を打って、まずは1の下線(確定する前の点線)をエンターキーでけしてから、次の「0」も同じように入れてみるとか。

pretty_moetan
質問者

補足

言葉足らずですみませんでした。 すでに作成してあるテキストの文書を、エディタとか一括変換のソフトを使って一括処理したいということなのです。 英数字を全角・半角の統一する機能はエディタ(私は秀丸を使っていますが)にもあるし、マクロも出回っているので問題はないのですが、全角(全角のスペース・句読点等も含む)に挟まれた半角の1桁の英数だけを全角に置き換えたいということなのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 全角英数字を半角英数字に変換したい

    全角英数字を半角英数字に変換する方法を教えて下さい。 $data =~ tr/0-9a-zA-Z/0-9a-zA-Z/; 以上のようにした場合、J-perl意外では望みどおりに変換されません。 jcode.plをつかって 全角英数字を半角英数字に変換する方法があると、 書かれていた方がいましたので、 できればjcode.plをつかった場合の 具体的なスクリプトの書き方を教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 全角英数字を半角にしたいんです。

    たとえばメールなどで送られてきた全角の数字をメモ帳上などで半角に直す方法ありますか? また全角英数字を半角に直すソフトなど知ってましたら教えてください。

  • 英数字の全角と半角はどう変えたらいいのでしょうか。

    ウインドウズから初めてマックを導入している初心者です。 英数字の全角と半角はどのようにして変えたらいいのでしょうか。 大文字小文字はシフトキー押しながらで変わったのですが、全角と半角だけがうまく変換できません。

    • ベストアンサー
    • Mac
  • 全角英数字のみ半角英数字にするには。

    VisualC++6.00 を使用しています。 ダイアログのエディットボックスで入力された文字を、 全角英数字のみ半角英数字にしたいのですが、 LCMapString だと、カタカナも半角になってしまいます。 英数字のみ半角にするには、どのようにすればいいでしょうか。 よろしくお願いします。

  • 明細書の英数字の全角・半角について

    明細書の英数字の全角・半角について 特許明細書を会社で書くことになりましたが、英数字や単位についても全角で書く方が良いのでしょうか? 特許電子図書館で調べると、どちらも見受けられるようです。 英字の式や単位を全角で記載すると間延びして、見栄えが悪いのですが、半角で書くとアマチュアのように見られるので、なんでも全角との意見があり迷っています。 英語は数値自体は半角が標準なのですが、特許の世界では全角が良いのでしょうか?

  • Excelで全角英数字を半角英数字に変換

     こんばんは!  お世話になります。 Excel sheetの列(F・G・J・K・N・O・R・S・V・W・Z・AA)、行(4~33)に アルファベットを入力するし、35行目以降に(例)A=1・B=2と"COUNTIF"関数使用でカウントされる様になっています。 そこで、その関数の式に半角英数字で入力した為、半角英数字で入力したものしかカウントされません。 入力時の注意で、半角英数字での統一入力でお願いしたものの、やはり中には全角英数字で入力する方もいて、一つ全角入力があると全て信用出来なくなり、折角自動でカウントされるようにしていても全部見直していては自動にした意味がありません。  その為、関数 or マクロでも結構です。 入力した範囲を選択して、半角英数字”A”の場合はそのままで全角英数字”A”の場合半角”A”に上書きされるようなことは出来ますか?  知っている中で、関数”ASC”も全角を半角に変換できますが、入力したセルと別のセルに返すので、そうではなく、入力してあるセルに上書きしたいのです。  ご存知の方がいらっしゃいましたら、宜しくお願いします。 お手数ですが初心者の為、具体的に教えて頂けたら幸いです。 ”のものは半角英数字  

  • IE6が 全角から半角英数字に戻ってしまう!

    IE6が 全角から半角英数字に戻ってしまう!GoogleやYahooなどで検索するときに全角で検索していても ブラウザ更新したり 戻る 使うと 毎回 半角英数字にもどってしまします!対処法はありますでしょうか?

  • 全角英数字を半角に

    アクセスで外部データ取り込みを使ってデータベースを作成して出来たデータの1つのフィールドを全角から半角に変換したいのですが、どのようにすればよいのですか? クエリを使って行えば良い気はするのですが関数等が見つかりません…。 データ型はテキスト型です。 よろしくお願いします。

  • Excel2010英数字のみ半角にする方法

    タイトルのほかにも条件があるのですが、Excel2010で、表示結果に条件があります。 既存に入力されているものなんですが、条件は以下の通りです。 条件1:漢字あるいは、ひらがなはそのまま 条件2:全角カタカナは全角カタカナ 条件3:半角カタカナは全角カタカナ 条件4:全角英数字は半角英数字 条件5:半角英数字は半角英数字 条件6:全角スペースは全角スペース 条件7:半角スペースは全角スペース 条件8:スペースが連続している場合は全角スペース1つのみ 例としては(左側が既存、右側が表示結果)、 全角あいうえお→全角あいうえお 全角アイウエオ→全角アイウエオ 半角アイウエオ→半角アイウエオ 全角110→全角110 半角アイウエオ全角110→半角アイウエオ全角110 半角アイウエオ□全角110→半角アイウエオ□全角110 半角アイウエオ□□全角110→半角アイウエオ□全角110 半角アイウエオ△□全角110→半角アイウエオ□全角110 半角アイウエオ△全角110→半角アイウエオ□全角110 半角アイウエオ△△全角110→半角アイウエオ□全角110 半角アイウエオ△△△全角110→半角アイウエオ□全角110 ※「□」は全角スペース、「△」は半角スペースです。分かりやすいように表記してみました。「□」または「△」が複数ある場合、スペースの個数です。 既存の入力されている列は「AE列」です。関数を入力できるのは「AR列」以降です。 関数について詳しくないため、あまり長いお礼はできませんが、回答よろしくお願いします。

  • 半角全角キーを押しても全角にならない

    私は「テイルズウィーバー」というオンラインゲームをやっているのですが、 先日のUPDATEで設定がおかしくなったらしく、 普通の時でもF5を押してIMEパッドが出るようになったのです。 そのため、ググって対処法を調べ、 「IMEでのF5の機能を削除する」という方法を見つけ、快適になりました。 しかし、タイトルどおり半角全角キーをおしても、 直接入力からひらがな入力にならなくなったのです。 Alt+半角全角でなる事にはなるのですが、すごく使いづらいのです。 既定の設定に戻したところ直ったのですが、F5を削除すると元に戻ってしまうようです。 そこで、F5の機能を削除したまま半角全角キーだけで入力切替ができるようにするにはどうしたらよいのでしょうか? (日本語がおかしい点があればご容赦ください)