• ベストアンサー

文字列置換

noname#25358の回答

noname#25358
noname#25358
回答No.1

 それは、漢字コードをちゃんと見分けてやる必要があります。 $line =~ s/([^\x81-\x9F\xE0-\xEF])([A-Za-z])/\*$2\*/g;  もしかしたらこれでうまくいくかもしれません。

関連するQ&A

  • mysqladminで表の中の文字列を合わせる

    表の中の文字列を合わせて、 それを隣の表に表示する方法ってありますか? 例えばデータベースには・・・ テーブル名:tokyo todouhuken、sikutyouson、ika 東京都、千代田区、飯田橋 東京都、千代田区、一番町 東京都、千代田区、岩本町 東京都、千代田区、内神田 東京都、千代田区、内幸町 ・・・・・・・ ・・・・・・・ で、列の文字列や数字等を全部足して それをもう一つのセル?って言うんですか? そこに出したいんです 上の例なら 東京都、千代田区、飯田橋、東京都千代田区飯田橋 ←この部分! と言う風に全部足して完成したヤツを隣のセル?に表示したいんです・・・ これってできますか? どういう操作が必要になりますか? それともphp文で等で処理するものなのでしょうか?

  • この置換処理について

    以下の処理がうまくいきません。 perlで実行すると以下の置換を行ってテキストファイルができるはずなのですが、0KBのテキストファイルができてしまいます。 そこで、手動で置き換えようと思ったのですが。 正規表現を使用した、置換処理を行っているということはわかっているのですが中の処理が分かりません。 詳しい処理の内容を教えていただけないでしょうか。 よろしくお願いいたします。 while(<>){ if(m#^(.+) /// (.+)$#){ $flg = 1; $word = $1; $text = $2; $line = $_; if($word =~ / /){ #熟語なら if(length($word) > 15){ $flg = 0; } elsif($word =~ /([A-Za-z]+) ([A-Za-z]+)/){ if(length($1) > 5 && length($2) > 5){ $flg = 0; } } } if($text =~ m#/#){ $text =~ s#/ .+##g; } } if($flg){ print $word.' /// '.$text."\n"; } }

    • ベストアンサー
    • Perl
  • 複数行に渡る文字列の置換

    Perlで書かれたソースを以下のように書き換えたいと考えています。 【変換前】 my $message = Convert( From => 'Shift_JIS', To => 'utf-8', Text => "(UTF-8の文字列)", ); 【変換後】 my $message = Convert( "(UTF-8の文字列)" ); ソース・ファイルは非常にたくさんあるのでスクリプトを組んで一括で行いたいと考えています。 容易く書き換えを完了できる方法はないでしょうか? ■前提条件 - 別の場所に出力するようにする場合はディレクトリ階層も維持する。 - インデントされている場合はインデントを保持する。 perl -pi -e 's///'で置換することが最も簡単そうですが、今回は複数行に渡るため、 s///の部分が非常に複雑になりそうです。なので、s///の部分をスクリプト・ファイルかなにかに 置き換えて、下記のように実行できればと考えているのですが、(何かしらのオプション)の部分が よくわかりません。。 perl -i (何かしらのオプション) (ファイル名) (ソースファイル名)... もちろんもっと良い方法があれば、その方法が良いです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 文字列中の半角カタカナ文字だけを半角スペースに置換

    文字列中の半角カタカナ文字だけを半角スペースに置換し、 「それ以外の文字列」だけをそのまま残して整形したいのです。 EXCELのVBAで処理できますか ? (Sheet1に文字列がある状態でSheet2に完成形を作成する) 「それ以外の文字列」とは、半角の英語(A,a,B,b)や半角数字で 全角や日本語漢字などはありません。 カタカナ文字の数が多いのでどのようにカタカナ文字の候補を 定義すれば上手く処理できるかイメージ出来ません。 以下に実際に近い例文及び完成形(整形後)のイメージです。 完成形は、イメージなので間違っているところがあると思われます。 整形前 Sheet1 ----------------------------------------------------------------- ワロイイアアー ー ー ーアアイイロワ ロイ゚ ゚゚ ワワイイイイワワ アー p r e s e n t s ーア ワワイイイイワワ ゚゚ ゚イロ ゚ワ ワロ゚゚゚ ゚゚ロイアー゚ ゚ーアイロ゚゚ ゚゚゚ロワ ワ゚  ゚ ゚゚ ゚゚ ゚  [ Turget 1 ] [ URL : http://www.gdbps.com.jp ] [ Doom : Windows ] ワロイアー   ーアイロワ ワロイイアアー ー : T A R G E T : ー ーアアイイロワ ロイ゚ ゚゚ ワワイイイイワワ アー ーア ワワイイイイワワ ゚゚ ゚イロ ゚ワ ワロ゚゚゚ ゚゚ロイアー゚ : LINE OF SETING : ゚ーアイロ゚゚ ゚゚゚ロワ ワ゚  ゚ ゚゚ ゚゚ ゚  ワワ ゚ワ ワ゚ ワワ ワロイイイイロロワ ワアー ーアワ ワロロイイイイロワ 整形後 sheet2 -------------------------------------------------------------- p r e s e n t s [ Turget 1 ] [ URL : http://www.gdbps.com.jp ] [ Doom : Windows ] : T A R G E T : : LINE OF SETING : ------------------------------------------------------------------

  • 文字からリストとの完全一致部分を抽出したい

    テキストからリストと合致する一文を抽出したいです 例文:セルB1 「私は東京都千代田区1-1に住んでいます」 リスト:セルA1 東京都千代田区     セルA2 神奈川県横浜市     セルA3 埼玉県秩父市     (以下続く) 結果:セルC1 東京都千代田区 例が分かりづらくて申し訳ありません・・・。 とにかくリストと完全一致する部分だけを抜き出したいんです! なにか適当な関数はないものでしょうか?

  • フォルダ内のファイルを全て開き文字列置換

    こんばんは。Perl超初心者です(プログラミングの初心者でもあります)。 フォルダ内にあるすべてのファイルに対して、正規表現を使った文字列置換をしたいのですが、うまくいきません。アドヴァイスをいただけないでしょうか。 具体的には、あるファルダの中に100個程のファイルがあって、その中の改行が3回連続している部分を、「改行+[SAMPLE]+改行」に置換をしたいと表います。 Windows XP Professional SP3 / ActivePerl 5.10 の環境で、以下のように記述したのですが、「Missing $ on loop variable at insert.pl line 5.」とエラーになってしまいます。どこで、間違ったのでしょうか(というか、まるでダメなスクリプトかもしれませんが…)。 use strict; use warnings; my @filename = glob "*.txt"; foreach open(FILE, "$filename(@filename)") { my @content =<FILE>; @content =~ s/\n{3}/\n[SAMPLE]\n/g; print FILE @content; close(FILE); } どなたか、ご教示いただけると非常助かります。 よろしくお願い致します。

    • ベストアンサー
    • Perl
  • エクセルでセルの一部の文字を取り出す

    ひとつのセルに、郵便番号と住所がはいてます。 例 〒333-3333 東京都江東区千代田3-3-3 住所の長さはデータごとに違います。 これで郵便番号を除いた住所部分のみ取り出すにはどうすればよいでしょうか。 よろしくお願いします。

  • 日本語と英語が混在した<小意気な短文>を教えてください

    自分のパソコン用のフォント見本を作りたいと思っています。 余計な説明かとは思いますが、フォント見本というのは一例としてこのようなものです。↓ http://ohkadesign.cool.ne.jp/wabunfont/dynafont/std.html こういったもので和文と欧文の混在したオリジナルのものを作りたいのですが、適当な短文が思い浮かびません。 そこで、次の条件で、ちょっと気の利いた短文があったら教えてください。 ○漢字、ひらがな(カタカナはあってもなくても良い)、アルファベット(大文字・小文字)、数字が使われていること。 ○和文と欧文が混在していることが重要。欧文が一ヶ所に集まっていないこと。 ○フォントの見本として使われているものは不可。オリジナルまたは文学作品等からの引用で。(引用の場合は出典も教えてください) ○仕事でも使うので、シャレのキツイもの、品のないものは駄目。でも、堅すぎない方がいい。(贅沢言うなって) ○欧文を使うことに不自然さがあるのは我慢する。 <例> 飛行機でAmericaへ行き、Jazzを聞いて、10月24日TomとRindaを連れて帰ってきた。 これは面白くもなんともありませんが、こんな感じでもっと気の利いたもの、という意味です。質問の意味はおわかりいただけたでしょうか。 カテゴリーに迷いましたが、文章を考えることが主なのでこちらにしました。 よろしくお願いします。

  • マクロを使って文字列を分類したい。

    マクロを使って、次の処理を行うマクロを作りたいのですが、 まず、漢字・ひらがな・カタカナ・数時・アルファベットを識別するコードの抽出方法と、コードの一覧がわかりません。 それから、文字列の処理の関数がなかなか思いつきません。 2年ほどマクロを使っていません。エクセルも2007になり、かなり勝手が違います。 できれば、マクロを示していただければありがたいのですが、 重要なヒントを示していただいても構いません。 ----------------------------------------------- セル(H、5)の中に、いろいろな文字列があります。 例えば、 「東京1月アメリカEUやまとChinaイギリス日本2009年おわり」 ですが、 これを 漢字をA列に1行から順に、 東京 月 日本 年 ひらがなをB列に1行から順に、 やまと おわり カタカナをC列に1行から順に、 アメリカ イギリス 数字をD列に1行から順に、 1 2009 アルファベットをE列に1行から順に、 EU China というように出力するマクロを作りたいのです。 よろしくお願いします。

  • 正規表現

    こんなことってできますか? どなたかご教授お願いします。 秀丸エディタを使用しています。 「東京都千代田区神田1-1-1」 上記のような住所が300件くらいあるのですが、 「東京都千代田区神田 1-1-1」のように数字の部分 と本体の部分をタブで切り離したいと思っています。 正規表現を使うとできるかな?と思って色々調べて みたのですが、うまくできませんでした。 これができないと、手動での作業になってしまいます。 どなたか助けてくださ~い。。 よろしくお願いします。

    • ベストアンサー
    • Perl