• ベストアンサー

Rubyの正規表現でエラー

UsadaYusukeの回答

  • ベストアンサー
回答No.1

どんな文字コードセット(SJISとかEUCとか)を使っているか書いてらっしゃらないので具体的にどの文字が引っかかっているのか分かりませんが、「ザジズゼゾ」の中のどれかの文字が「[」を含む文字コードが含まれています。 ちなみにそれは「warning」つまり注意喚起であってエラーではありません。

siokara
質問者

お礼

早速の回答有難うございます。 >どんな文字コードセット(SJISとかEUCとか)を使っているか書いてらっしゃらないので >>$KCODE = "S" SJISと表現したつもりです・ >「ザジズゼゾ」の中のどれかの文字が「[」を含む文字コードが含まれています。 調べてみたところ、ご指摘のとおりコードが被ってました。 ゼ 5B 83 [ 5B どうも有難う御座いましたm(__)m

siokara
質問者

補足

>ちなみにそれは「warning」つまり注意喚起であってエラーではありません。 あ”・・ warningでした(汗

関連するQ&A

  • Rubyの正規表現を引数に

    お世話になっています。 Rubyの正規表現を引数にできないものでしょうか? def chkStr(sReg) #正規表現にかける if regexp = sReg      ・・・ end end sReg = ~ /\t(国語|数学)/ chkStr(sReg) みたいなことがしたいのです。 宜しくお願いします。

  • これは正規表現とは言えないでしょうか?

    正規表現を勉強しようと思っているのですが まずはじめに確認させて下さい。VBAです。 Sub 正規表現() If a Like "*a*" Then End If End Sub は正規表現とは言えないでしょうか? *を使っているからそう思いました。 Dim re As RegExp Set re = New RegExp を使わないと、正規表現といえないのでしょうか? よろしくお願い致します。

  • rubyの正規表現について質問です。

    rubyの正規表現について質問です。 rubyを勉強中ですが、 正規表現について質問させてください。 以下のようなことをしたいのですが、どのような記述をすれば実現できるでしょうか? (1)test → #test (2)test → test 「test」の場合は、「#」を加え、「#test」に置換したい 「test」の場合は、そのまま「test」としたい。 if を続ければ可能だとは思いますが、 一つの正規表現で(1)のケースだけを引っ掛けられればと思っています。 正規表現でANDが使えればよいのですが、使えないようですし。。。 お手数をおかけしますが、お力をよろしくお願いします。

    • ベストアンサー
    • Ruby
  • rubyの正規表現で"["を使いたいのですが、正しく実行できません

    rubyの正規表現で"["を使いたいのですが、正しく実行できません #! ruby -Ks a ="test[test" b ="test[" if /#{b}/ =~ a print "hit" end エラー内容は test.rb:4: invalid regular expression; '[' can't be the last character ie. can't start range at the end of pattern: /test[/ (RegexpError) "\["と文字を入力することで解決するかと思いましたが上手くいきませんでした。 rubyのバージョンは1.8.2です。宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • Rubyにおける正規表現(一致しない)

    Rubyを使って、テキスト処理をやっています。 どうしても、うまく行かないところがあります。 サジェスチョンをお願いします。 正規表現にて、 2つの条件フラグが成立していて、かつ、特定の文字列を含まないという条件です。 1行の内容は、textに入っています。 if (myFlag1==1) && (myFlag2==1) && (!/abc def/) then xxxxxxxx end (!/abc def/)は、perlでの表現です。Rubyでは、少なくとも (!/abc def/=~text) かな、と考えましたが、ダメでした。 (/abc def/!=text) でも、だめでした。 宜しくお願いいたします。

  • CSVデータを正規表現で抜き出せません・・・。

    お疲れ様です。初投稿になります。 どうぞ宜しくお願い致します。 CVSデータ(囲い文字:"(ダブルコーテーション))を正規表現でマッチングさせ、抜き出そうと考えています。 エスケープ文字を以下のように設定しています。 ・""(ダブルコーテーション * 2) ⇒ "(ダブルコーテーション) ・\"(円記号 + ダブルコーテーション) ⇒ "(ダブルコーテーション) ・\\(円記号 * 2) ⇒ \(円記号) 例えば・・・ "A",""",BB,"",\",CC,\\,DD""","EEEE","", ですと、「"A"」「""",BB,"",\",CC,\\,DD"""」「"EEEE"」「""」と取れる想定になります。 特に2番目の「""",BB,"",\",CC,\\,DD"""」は、 「"""(←escape),BB,""(←escape),\"(←escape),CC,\\(←escape),DD""(←escape)"」 という想定です。 PHP関数ではエスケープ文字の問題により取得しきれず、自力での取得を行っております。 私が考えた正規表現は「"[^"]*((""|\\")[^"]*)*[^\\]",|"",」となりますが、カンマが入り乱れる上記パターンを満たすことができません。 これは、正規表現での解決は不可能でしょうか? 何日も解決できず、困っています・・・。 是非、皆様のお力添えのほど、宜しくお願い致します。 PS. このサイトで動作確認を行っておりました。 参考になれば幸いです。 http://www.rider-n.sakura.ne.jp/regexp/regexp.php

    • ベストアンサー
    • PHP
  • 正規表現で

    正規表現で $ruby = "昨日の天気(てんき)は雨だったが、今日は快晴(かいせい)だ。明日の天気は曇りの可能\性(かのうせい)が高い"; $ruby =~ s/([亜-煕]|[一-龠])(([^)]*))/<ruby><rb>$1<\/rb><rp>(<\/rp><rt>$2<\/rt><rp>)<\/rp><\/ruby>/g; としたら実行結果がこうなりました。 昨日の天気(てんき)は雨だったが、今日は快・ruby>ー(かいせい)だ。明日の天気は曇りの可能・ruby>ォ(かのうせい)が高い どうすればよろしいですか?

    • ベストアンサー
    • Perl
  • 正規表現について

    VB6ですが・・・ '次のようなコードがあって <!-- と --> に囲まれる文字列を抜き出したのですが 'どのようなパターンマッチを書けばいいのでしょうか? 'HTMLのコメントのみを抜き出したいと思っています。 Const s = "<!--今日-->" _ & "<!--僕は--><!--正規表現を--><!--勉強します-->" Dim x As RegExp Dim v As match Set x = New RegExp x.Pattern = "パターン" x.Global = True For Each v In x.Execute(s) Debug.Print v.Value Next

  • 正規表現について教えてください。

    正規表現について教えてください。以下は左に配置したサムネイル(X01s、X01as、X01bs・・・)をクリックすると右にそのサムネイルの拡大画像(X01l、X01al、X01bl・・・)を表示するページです。 サムネイルのimgタグを▼以下のようにしたいと考えています。 ※makethumbnail.cgiはサムネイル作成CGI 現在:<img src="X01s.jpg"> 変更後:<img src="/makethumbnail?src=X01s.jpg&w=100&h=&type="> ▼以下はダメでした。正規表現に問題があるのでしょうか。 <img src="/makethumbnail.cgi?src=' + img + 's' + ext + '&w=100&h=&type=" class="thumbnail" onclick="changeImage(this)"> お知恵をお借りできれば幸いです。 <head> <script type="text/javascript"> location.search.match(/^\?img=([^&]+)(\.[^&\.]+)&num=(.+)$/); var img = RegExp.$1; var ext = RegExp.$2; var num = Number(RegExp.$3); function changeImage(img){ var imgsrc = img.src || img; imgsrc.match(/^(.*)s(\.[^\.]+)$/); document.main.src = RegExp.$1 + "l" + RegExp.$2; return false; } document.write = img && ext && num ? document.write : function(){}; </script> </head> <body> <table> <tr> <th> <script type="text/javascript"> /* サムネイル */ document.write('<a href="#"><img src="' + img + 's' + ext + '" class="thumbnail" onclick="changeImage(this)"></a><br /><br />'); for (var i = 1; i < num; i++) { document.write('<a href="#"><img src="' + img + String.fromCharCode(0x60 + i) + 's' + ext + '" class="thumbnail" onclick="changeImage(this)"></a><br><br>'); } </script> </td> <td> <script type="text/javascript"> /* 拡大 */ document.write('<img src="' + img + 'l' + ext + '" name="main" id="main_image" />'); </script> </td> </tr></table>

  • 正規表現で日本語文字化け

    winxp でrubyの勉強をしていますが、正規表現により分割した日本語の文字列を処理するときにどうしても文字化けしてしまいます。 環境はwinxp pro,activeruby 1.8.6, RDE 1.1.1.1 です。実行しようとした内容は ”蛸 110円”など名前と金額の組み合わせが複数行乗っているテキストファイルを読み込、以下の正規表現で名前と金額を別々の配列に格納しています。 if /(\w+)\s+(\d+)/e =~line menu[i]=$1 price[i]=$2 ・・・ 上記の処理では 変数line は正常に日本語を格納していますが、$1には”蛸”ではなく文字化けした状態で値がセットされています。 ソースの先頭には $KCODE=Ks を記載し、読み込むファイルもソースファイルもSJISで揃えました。 上記以外にどのような点に留意すればよいのか、そもそも認識が間違っている点があるかなどご指摘いただければと思います。よろしくお願いします。