JavaScriptの正規表現の中級事項をメモ
正規表現の基礎を脱して,応用的な情報をメモ。
JavaScriptに限らず,Javaとか他のプログラミング言語でも汎用的に当てはまる。
参考サイト:
JavaScript正規表現メモ。
http://d.hatena.ne.jp/koseki2/2009053...
括弧系
https://developer.mozilla.org/ja/Core...
- (x)
- x にマッチし、マッチしたものを記憶します。これはキャプチャする括弧 (capturing parentheses) と呼ばれます。
- (?:x)
- x にマッチしますが、マッチしたものを記憶しません。これはキャプチャしない括弧 (non-capturing parentheses) と呼ばれます。
- x(?=y)
- x に続いて y が現れる場合にのみ、x にマッチします【訳注: 肯定的前方先読み】
- x(?!y)
- x に続いて y が現れない場合にのみ、x にマッチします【訳注: 否定的前方先読み】
キャプチャしない括弧
http://hwat.sakura.ne.jp/hpod/200705/...
ScriptFragment: '(?:
否定先読み
正規表現で特定の単語を除外したい
http://oshiete.goo.ne.jp/qa/1547202.html
- java(?!script) javaにマッチしてjavascriptにマッチしない。 「幅ゼロの否定先読み」という呼び方
ある文字列の左側じゃない(否定)
http://yakinikunotare.boo.jp/orebase/...
- (?!hoge)
- これは肯定の逆である文字列の左側じゃない部分にマッチします。文字と文字の境界面なんて文字の数だけあるんで、ほとんどどこでもマッチしてしまいます
後方参照
JavaScriptの動かないコード (中級編) 正規表現で同じ文字の連続を検出したい - 置換前パターン中での後方参照
http://language-and-engineering.hatenablog.jp/entry/20080927/1222508705
- 括弧でキャプチャ済みの文字列を,評価時に「\1」で参照
- 評価の終了後には「$1」で参照
「前方参照」も同じ事。
正規表現の解説 初級編
http://www4.ocn.ne.jp/~kaerume/k2e/re...
後方参照(前方参照)
- グループにマッチした文字列を参照すること。
- ‘後方参照’は‘前方参照’と表現がされる場合があり,同じ事を指す
- 「マッチした文字列を後から参照する(後ろから参照する)」から‘後方参照’。
- 「前にマッチした文字列を参照する(前の方を参照する)」から‘前方参照’。
RegExpオブジェクト
状態を持っている
static
http://d.hatena.ne.jp/javascripter/20...
- 正規表現リテラルは毎回解釈されるわけではなく、一度作られると同じオブジェクトが使われるのでstatic変数のような挙動をする。