我正在查找可以檢查字符串是否與增量式匹配正則表達式(即一次一個字符)並返回不確定結果的JavaScript庫(理想情況下爲node.js包)。例如,假設我有以下正則表達式:使用增量測試的Javascript正則表達式
j.*s.*
而且我想測試字符串「javascript」。我想類似如下的API:
var iregex = new IncrementalRegex('j.*s.*');
var matcher = iregex.createMatcher();
matcher.append('j');
matcher.test(); //returns "possible match"
matcher.append('a');
matcher.test(); //returns "possible match"
matcher.append('v'); matcher.append('a'); matcher.append('s');
matcher.test(); //returns "match found"
matcher.append('ript');
matcher.test(); //returns "match found"
而如果我測試的字符串「foo」,我希望這樣的事情:
var matcher2 = iregex.createMatcher();
matcher.append('f');
matcher.test(); //returns "no match possible"
//At this point I wouldn't bother appending "oo" because I know that no match is possible.
編輯: 要清楚,追加是建立正在測試的字符串。一個新的匹配器開始對空字符串進行測試,並在matcher.append('foo')之後匹配foo。 appendToString或buildUpString可能是更好的名稱使用。
此外,我有一個想法,這可能是如何做到的,但我還沒有完全想到它通過。也許有可能從原始正則表達式中構建一個匹配字符串的「潛在匹配」正則表達式,當且僅當它們是原始正則表達式匹配的字符串的開始。
在你的實現中追加附加到模式,而不是建立被測試的字符串。 我打算在Earley Parser中使用它,它可以使用包含正則表達式的生成規則。 –