私の質問を見てくれてありがとう。正規表現の代替(すべての一致)
私は正規表現に一致しようとしている選択肢の長いリストを持っている:
var re = new RegExp('o1|o2|o3|o4|o5|...','g')
私はに実行し、問題がO1はO2の部分文字列であれば何が起こるかです。例えば
var re = new RegExp('a|b|c|ab|abc','g')
var s = 'abc'
s.match(re)
- > "A"、 "B"、 "C"]
"と" abc "。 RegExpの順序を変更すると、長い文字列と一致するようになりますが、本当にすべての一致を取得したいと思います。
これを行うにはどのような方法が最適ですか?これは必ずしも長いリストの選択肢を扱う最良(または良い方法)のようには思えません。私は独自の正規表現を使って各選択肢をテストすることを考えましたが、それはあまり効率的ではないようでした。
どのような指針も素晴らしいでしょう。ありがとう!
だから、あなたは、すべての可能な一致をしたいですこれらの代替案?私はそれが表現だけでは不可能だとは思わない。 –
はい、そうです。私は過去にこのソリューションを使用しましたが、重複のないオプションのリストがあり、独自のregexpまたはindexOfを使用して各オプションをチェックするよりも速いようでした。私は代わりの候補が重複している可能性があるので、リストを繰り返し処理する必要があると思います: -/ – bobjenkins1234