我想知道 JavaScript 的 RegExp 引擎是否支持可变长度回顾断言?
例如,我试图匹配字符串“[很多空格和/或制表符]变量中的字符串“可变长度” length lookbehind”,我有这样的东西,但它在各种 RegExp 测试仪中效果不佳:
^(?<=[ \t]+).+(?= lookbehind)
如果它是非法模式,有什么好的解决方法?谢谢!
最佳答案
Javascript 根本没有回顾。 Steven Levithan 有 written up a few says to sort of mimic it ,这可能会有所帮助。
我不太明白你的例子,因为这似乎符合要求:
/^\s+(.+)lookbehind$/
...匹配一个或多个空白字符后跟一个或多个任意字符(在捕获组中)后跟单词“lookbehind”。像这样使用:
var str = " variable length lookbehind";
var match = /^\s+(.+)lookbehind$/.exec(str);
产生这个数组:
match[0]: | variable length lookbehind|
match[1]: |variable length|
在 Javascript 中,数组中的第一个条目是整个匹配的字符串,后面的条目是捕获组。
但是您显然对正则表达式有很好的掌握,所以我不确定这就是您要找的...
在这个一般领域需要注意的是,Javascript 中 RegExp 引擎的许多实现相当不能正确处理 \s
(它们错过了匹配一些高于 ASCII 范围的空白字符);查看 S_REGEXP_WHITESPACE_CHARACTER_CLASS_BUGGY 测试 here .
关于javascript - 在 RegExp 中使用可变长度后视删除前导空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787248/