Hatena::Groupmnemonic

きおく屋めがねばし

 | 

2012-11-21

「3.2.4 パターンマッチング」

Pattern Matching

JavaScript では、正規表現の構文としてPerl の構文を使っています。

RegExp は基本的な型ではありませんが、JavaScript プログラム中に直接記述するためのリテラル形式の文法が用意されています。テキストをスラッシュで囲むことで、正規表現リテラルを記述できます。末尾のスラッシュの後ろには、さらに文字を記述できます。この文字で、パターンの意味を変更できます。いくつかの例を紹介します。

/^HTML/            // 文字列の先頭のH T M L という文字にマッチ。
/[1-9][0-9]*/      // 0 以外の数字の後に続く任意の個数の数字にマッチ。
/\bjavascript\b/i  // 大文字小文字区別なしに「javascript」という単語にマッチ。

Although RegExps are not one of the fundamental data types in the language, they do have a literal syntax and can be encoded directly into JavaScript programs. Text between a pair of slashes constitutes a regular expression literal. The second slash in the pair can also be followed by one or more letters, which modify the meaning of the pattern. For example:

/^HTML/            // Match the letters H T M L at the start of a string
/[1-9][0-9]*/      // Match a non-zero digit, followed by any # of digits
/\bjavascript\b/i  // Match "javascript" as a word, case-insensitive
var text = "testing: 1, 2, 3,";  // 例となるテキスト。
var pattern = /\d+/g             // 1 個以上の数字列にすべてマッチ。
pattern.test(text)               // => true: マッチする部分が存在する。
text.search(pattern)             // => 9: 最初にマッチした文字の位置。
text.match(pattern)              // => ["1", "2", "3"]: すべてのマッチを含む配列。
text.replace(pattern, "#");      // => "testing: #, #, #"
text.split(/\D+/);               // => ["","1","2","3"]: 数字以外の文字で配列に分割。

トラックバック - http://mnemonic.g.hatena.ne.jp/paragramma/20121121
 |