javascript - 在 RegExp 中使用可变长度后视删除前导空格

标签 javascript regex lookbehind

我想知道 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/

相关文章:

php - 以任意顺序匹配子模式

visual-studio - visual studio 正则表达式查找/替换错误

php - php 未获取 javascript 值

javascript - 我的日期选择器工作得不太好

javascript - chrome 中的事件.dataTransfer.dropEffect

python 正则表达式匹配一个组或不匹配它

regex - 何时在正则表达式中使用正向查找?

regex - 正则表达式后顾之忧

regex - 你能挽救我的负面回顾例子吗?

javascript - 加载 js 文件时出现问题