別のキーワード
種類
- 文書 (89)
- インスタンスメソッド (84)
- ライブラリ (60)
- クラス (36)
ライブラリ
- ビルトイン (12)
-
net
/ http (12) - rake (24)
-
rake
/ loaders / makefile (12) -
rexml
/ document (48) -
ripper
/ filter (12)
クラス
-
REXML
:: DocType (36) -
Rake
:: MakefileLoader (12)
モジュール
-
Net
:: HTTPHeader (12) -
Rake
:: TaskManager (24)
キーワード
- Filter (12)
-
NEWS for Ruby 3
. 0 . 0 (5) - Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (12)
- Ruby用語集 (12)
- String (12)
-
attribute
_ of (12) -
attributes
_ of (12) -
content
_ type (12) -
last
_ comment (12) -
last
_ description (12) - load (12)
-
rdoc
/ parser / ruby (12) -
rexml
/ parsers / pullparser (12) -
rexml
/ parsers / sax2parser (12) -
rexml
/ parsers / streamparser (12) -
rexml
/ parsers / ultralightparser (12) -
ruby 1
. 6 feature (12) - write (12)
- リテラル (12)
- 多言語化 (12)
- 字句構造 (12)
- 正規表現 (12)
検索結果
-
正規表現 (316.0)
-
正規表現 * metachar * expansion * char * anychar * string * str * quantifier * capture * grouping * subexp * selector * anchor * cond * option * encoding * comment * free_format_mode * absenceop * list * specialvar * references
...har
* anychar
* string
* str
* quantifier
* capture
* grouping
* subexp
* selector
* anchor
* cond
* option
* encoding
* comment
* free_format_mode
* absenceop
* list
* specialvar
* references
正規表現(regular expression)は文字列のパターンを記述......うかを判定し、
また含んでいるならばそれが文字列中のどの場所であるかを知ることができます。
//emlist[][ruby]{
/pat/
%r{pat}
//}
などの正規表現リテラルや Regexp.new などで正規表現
オブジェクトを得ることができます。
===[......文字列があります。
前者をメタ文字列(meta string)、後者をリテラル(文字列)(literal string)と呼びます。
//emlist[][ruby]{
/京都|大阪|神戸/
//}
という正規表現においては、「京都」「大阪」「神戸」がリテラルで、
2つの「|」がメ... -
リテラル (252.0)
-
リテラル * num * string * backslash * exp * char * command * here * regexp * array * hash * range * symbol * percent
...* exp
* char
* command
* here
* regexp
* array
* hash
* range
* symbol
* percent
数字の1や文字列"hello world"のようにRubyのプログラムの中に直接
記述できる値の事をリテラルといいます。
===[a:num] 数値リテラル
: 123
: 0d123
整数......: 42i
: 3.14i
複素数
: 42ri
: 3.14ri
虚数部が有理数の複素数
数値リテラルには、`_' を含めることができます。
ruby インタプリタは `_' を単に無視し、特別な解釈は何もしません。
これは、大きな数値の桁数がひと目でわか......めて Ruby の式をそのまま書くこと
ができます。コメントも許されます。
p "#{ "string" # comment }" # => "string"
式展開中のコメントは、# から } まででなく改行までです。上記の例は
//emlist[][ruby]{
p "#{ "string" # comment
}"... -
多言語化 (214.0)
-
多言語化 Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。
...多言語化
Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。
文字列の内部表現のエンコーディングは固定されておらず、
プログラマは目的に応じて使用するエンコーディングを選ぶこ......ます。
後述のマジックコメントでスクリプトエンコーディングを指定すると、
Ruby スクリプトに非 ASCII 文字を使うことができます。(magic_comment)
文字列リテラルや正規表現リテラルだけでなく変数名、メソッド名、クラス......外での非 ASCII 文字の使用は
推奨されません。
グローバル変数 $KCODE は廃止されました。
* m17n_prog
* convert
* ruby18
* encoding
* script_encoding
===[a:m17n_prog] M17N プログラミングの基本
プログラマは文字列を扱うときエンコーデ... -
rexml
/ parsers / streamparser (60.0) -
ストリーム式の XML パーサ。
...トの情報を受け取れるようにしています。
空白や改行もテキストであることに注意してください。
//emlist[][ruby]{
require 'rexml/parsers/baseparser'
require 'rexml/parsers/streamparser'
require 'rexml/streamlistener'
class Listener
include REXML::StreamListen......s)
@events << "tag_start[#{name}]"
end
attr_reader :events
end
xml = <<EOS
<members>
<member name="apple" color="red">
<comment>comment here</comment>
</member>
<member name="banana" color="yellow"/>
</members>
EOS
listener = Listener.new
REXML::Parsers::StreamParser.new(xml, lis......arse
listener.events
# => ["tag_start[members]",
# "text[\n ]",
# "tag_start[member]",
# "text[\n ]",
# "tag_start[comment]",
# "text[comment here]",
# "text[\n ]",
# "text[\n ]",
# "tag_start[member]",
# "text[\n]",
# "text[\n]"]
//}
=== コールバ... -
Ripper
:: Filter (58.0) -
イベントドリブンスタイルで Ruby プログラムを加工するためのクラスです。
...ブンスタイルで Ruby プログラムを加工するためのクラスです。
このクラスを継承して、必要なイベントに対応するメソッドを定義して使用し
ます。
=== 使用例
//emlist[][ruby]{
require 'ripper'
require 'cgi'
class Ruby2HTML < Ripper::Filter......end
def on_comment(tok, f)
f << %Q[<span class="comment">#{CGI.escapeHTML(tok)}</span>]
end
def on_tstring_beg(tok, f)
f << %Q[<span class="string">#{CGI.escapeHTML(tok)}]
end
def on_tstring_end(tok, f)
f << %Q[#{CGI.escapeHTML(tok)}</span>]
end
end
Ruby2HTML.new(ARGF).......イベントを実行します。イベントはプログラムに書いた順番で実行されます。
上記の例では、parse メソッドに渡した空文字列を初期値として、イベントハ
ンドラが ARGF で渡された Ruby プログラムを HTML にして返します。... -
字句構造 (58.0)
-
字句構造 * identifier * comment * embed * reserved
...字句構造
* identifier
* comment
* embed
* reserved
Rubyの現在の実装はASCIIキャラクタセットを用いています。アル
ファベットの大文字と小文字は区別されます。識別子と一部のリテ
ラルの途中を除いては任意の場所に空白文......r
ruby_is_simple
Rubyの識別子は英文字またはアンダースコア('_')か
ら始まり、英文字、アンダースコア('_')または数字
からなります。識別子の長さに制限はありません。
===[a:comment] コメント
例:
# this is a comment......ll be skipped by the interpreter.
=end
Rubyのソースコードにドキュメントを埋め込む事ができます。文が
始まる部分の行頭の=beginから、=endで始まる行までが
埋め込みドキュメントです。Ruby インタプリタとしては内容に縛り... -
String (54.0)
-
文字列のクラスです。 ヌル文字を含む任意のバイト列を扱うことができます。 文字列の長さにはメモリ容量以外の制限はありません。
...テラルを使って生成します。
以下に文字列リテラルの例をいくつか示します。
//emlist[文字列リテラルの例][ruby]{
'str\\ing' # シングルクオート文字列 (エスケープシーケンスがほぼ無効)
"string\n" # ダブルクオート文字列 (エ......用も可能
<<-End
この行はヒアドキュメント (終端記号をインデントできる)
End
//}
===[a:mutable] 破壊的な変更
Ruby の String クラスは mutable です。
つまり、オブジェクト自体を破壊的に変更できます。
「破壊的な変更」とは......ハッシュのキーに非 ASCII 文字列を使う場合には注意が必要です。
//emlist[動作例: (注)一行目にmagic commentが必要です。][ruby]{
# encoding: UTF-8
h = {}
s = "いろは"
s.force_encoding("EUC-JP")
h[s] = 1
s.force_encoding("ASCII-8BIT")
p h[s]......ト、ダブルクオートとの併用も可能
<<~End
この行のインデントは無視される
End
//}
===[a:mutable] 破壊的な変更
Ruby の String クラスは mutable です。
つまり、オブジェクト自体を破壊的に変更できます。
「破壊的な変更」とは... -
rexml
/ parsers / pullparser (30.0) -
プル方式の XML パーサ。
...テキストノード
: processing_instruction (ターゲット文字列, 内容文字列 | nil)
XML処理命令(Processing Instruction, PI)
: comment (コメント文字列)
コメント
: start_doctype (ルート要素名, "SYSTEM" | "PUBLIC" | nil, システム識別子 | nil, 公開識別......andalone ("yes" | "no" | nil))
XML宣言
: externalentity (エンティティ文字列)
doctype内のパラメータ実体参照。
//emlist[][ruby]{
require 'rexml/parsers/pullparser'
xml = <<EOS
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/css" href="style.css"?>
<!DOCT......://example.org/foo"
xmlns:bar="http://example.org/bar"><![CDATA[cdata is here]]>
<a foo:att='1' bar:att='2' att='<'/>
&& <!-- comment here--> &bar;
</root>
EOS
parser = REXML::Parsers::PullParser.new(xml)
while parser.has_next?
p parser.pull
end
# >> xmldecl: ["1.0", "UTF-8",... -
rexml
/ parsers / sax2parser (30.0) -
SAX2 と同等の API を持つストリーム式の XML パーサ。
...REXML::Parsers::SAX2Parser#listen を参照してください。
REXML::Parsers::StreamParser のパーサよりは高機能です。
//emlist[][ruby]{
require 'rexml/parsers/sax2parser'
require 'rexml/sax2listener'
parser = REXML::Parsers::SAX2Parser.new(<<XML)
<root n="0">
<a n="1">111</a>......", {"n"=>"2"}], ["a", {"n"=>"3"}]]
as # => [["a", {"n"=>"1"}], ["a", {"n"=>"3"}]]
texts # => ["111", "333"]
//}
//emlist[仕様確認サンプル][ruby]{
require 'rexml/parsers/sax2parser'
require 'rexml/sax2listener'
xml = <<EOS
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/......"
xmlns:bar="http://example.org/bar"><![CDATA[cdata is here]]>
<a foo:att='1' bar:att='2' att='<'>
<bar:b />
</a>
&& <!-- comment here--> &bar;
</root>
EOS
class Listener
#include REXML::SAX2Listener
def method_missing(name, *args)
p [name, *args]
end
def respon... -
REXML
:: DocType # write(output , indent = 0 , transitive = false , ie _ hack = false) -> () (24.0) -
output に DTD を出力します。
...param ie_hack 無視されます。指定しないでください。
//emlist[][ruby]{
require 'rexml/document'
doctype = REXML::Document.new(<<EOS).doctype
<!DOCTYPE books [
<!ELEMENT book (comment)>
<!ELEMENT comment (#PCDATA)>
<!ATTLIST book
author CDATA #REQUIRED
title CDAT......A #REQUIRED
publisher CDATA "foobar publisher">
<!ENTITY p "foobar publisher">
<!ENTITY % q "quzz">
]>
EOS
doctype.write(STDOUT)
# =>
# <!DOCTYPE books [
# <!ELEMENT book (comment)>
# ....
//}...