文字列解析例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/10 19:20 UTC 版)
最初の例は、文字列を解析して特定の単語を探し、関連するデータの一部を変数としてコピーし、他の場所でそれを使う。この例では、文字列からコピーされた部分も文字列である。具体的に言えば、"write" または "send" で始まる命令文型の文字列を入力として、簡単な構文解析で「何を」「誰が」「どうする」のかを把握する処理が記述されている。 strings: [ "write Graham a thank-you note" "send Allen the new source code"]foreach string strings [ print string ; 規則はブロックで表され、角括弧で囲まれている。 parse string [ ; 各文字列は次のいずれかの単語で始まる。COPY は ; テキストの一部をコピーし、後でそれを使う。 copy how ["write" | "send"] (print ["How:" how]) ; ここで、次の空白までをコピーする。その後には "a" または ; "the" が続く。ここでは括弧を使って規則が一致したときに ; とるべき動作を定義している。 copy who to " " ["a" | "the"] (print ["Who:" who]) ; 最後に、文字列の最後までをコピーする。 copy what to end (print ["What:" what]) ] print ""] "parse string" ブロックの最後の行を見てみると、"copy what" は現在パーサが見ている位置("a" または "the" の後)からのテキストをコピーすることを意味し、それを変数 "what" に代入する。また、ダイアレクトは "to end" を指定しているので、文字列の最後尾まで全てをコピーすることを意味する。従って "what" には第一の文字列なら "thank-you note"、第二の文字列なら "new source code" が代入される。 Print ["What:" what ] と打ち込むと、以下のように出力される: What: thank-you note What: new source code
※この「文字列解析例」の解説は、「REBOL」の解説の一部です。
「文字列解析例」を含む「REBOL」の記事については、「REBOL」の概要を参照ください。
- 文字列解析例のページへのリンク