2012-01-21 6 views
0

といくつかの例の非離間フレーズと一致する:正規表現が離間フレーズ

  • 「thisisanotherexample」が「これは他の例である」
  • に一致し
  • 「私はStackOverflowのが好き」と一致するであろう「ilikestackoverflow」を

左手に合わせるために右手のスペースを取り除くことができましたが、左から右に行くことができるので、かなりのスペースと処理時間を節約できます。

+0

正規表現を使用すると、スペースや時間を節約できますか? – Marcin

答えて

0

正規のパーサー(状態マシンのようなもの)が毎回の組み合わせとバックトレースを試すよりも、右側のスペースを削除するほうが速くなります。

A BCABCと一致しますか?

正規表現は^A\s?B\s?C$

  1. 私は最初のAを持っていますかだろうか? はい続行
  2. スペースがありますか? はい続行
  3. 私はBを持っていますか? はい続行
  4. スペースがありますか? いいえスキップ(?の意味0または1)
  5. 私はCを持っていますか? はい続行
  6. 文字列の最後にはありますか? はいここで行われます。

2つの文字列の比較は、はるかに軽く、より高速になります。

2
 
var spaced = 'i like stack over flow'; 
var nonSpaced = 'ilikestackoverflow'; 

console.log(spaced.split(' ').join('') == nonSpaced); // true 

基本的なものを交換する場合は、split(' ').join('')を使用してください。この場合、RegExを使用する必要はありません。これはRegexよりもはるかに優れています。

関連する問題