0

m = %r(.)(.)(\d+)(\d)/.match("THX1138.")ドキュメントから取得した)回線でいくつかの操作を実行しようとすると、次のように画面に何も表示されません。

画面

>出てIRB行って\来て、上のスクリーンショットのようにカーソルが点滅し始めます。

私が何を間違えたのか教えてくれませんか?

ありがとう


@valodzkaの提案に従って、私は以下を試し、>から戻ってきました/。yippyy :)

irb(main):006:0> m = %r(.)(.)(\d+)(\d)/.match("THX1138.")
irb(main):007:1/ /)
SyntaxError: (irb):6: syntax error, unexpected '(', expecting $end
m = %r(.)(.)(\d+)(\d)/.match("THX1138.")
          ^
        from C:/Ruby193/bin/irb:12:in `<main>'
irb(main):008:0>

どうもありがとうございました@valodzka :)

4

1 に答える 1

1

正規表現の構文が間違っているため、次のようになります。

m = /(.)(.)(\d+)(\d)/.match("THX1138.")

また

m = %r/(.)(.)(\d+)(\d)/.match("THX1138.")

ドキュメントは明らかに正しくありません。Ruby regexp構文は/regexp/、または%r'open-symbol'regexp'close-symbol'、たとえば/test/%r{test}または%r|test|です。通常//は使用されますが、正規表現に「/」記号が含まれている場合は、%r便利な場合があります。

于 2013-01-19T08:02:10.227 に答える