regex look-behind:无效的正则表达式:/(?<=.)S+$/:无效的组
regex look-behind: Invalid regular expression: /(?<=.)S+$/: Invalid group
我有以下regexp
(?<='.)'S+$
用于提取字符串的扩展名(最后一个点之后的任何扩展名)regex101.com似乎接受了我的regexp:字符串扩展名匹配正确。当我把它移到一个javascript脚本中,并尝试用字符串测试它时,我会得到以下错误:
Invalid regular expression: /(?<='.)'S+$/: Invalid group
我也得到同样的错误与regex101自动生成的代码:
var re = /(?<='.)'S+$/;
var str = 'test.txt';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
请参阅小提琴此处
有什么提示吗?
您不能在JavaScript正则表达式中使用look-behinds。有一些JavaScript外观的变通方法,但它们都有自己的障碍。为了安全起见,请使用捕获组。在这里,您需要的内容将在第二组中:
('.)([^.]+)$
或者,只有一个捕获组(以提高性能):
'.([^.]+)$
代码:
var re = /'.([^.]+)$/;
var str = 'test.txt';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
alert(m[1]);
}
由于babel加载器错误
用var re = new RegExp("(?<=''.)''S+$");
替换var re = /(?<='.)'S+$/;
相关文章:
- regex look-behind:无效的正则表达式:/(?<=.)S+$/:无效的组
- 在正则表达式中添加 (?i) 会导致 javascript 中出现错误“无效的正则表达式组”
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- 正则表达式在浏览器上有效,但在Node.js中无效
- 什么是最不坏的正则表达式来拒绝绝对无效的电子邮件地址
- javascript无效正则表达式无效组
- 修复Javascript无效的正则表达式:无效的组
- 电话正则表达式,但希望使所有 10 位数字都相同无效
- javascript 带有标记“”的正则表达式无效
- 为什么我在正则表达式背后的积极看法无效
- javascript 错误:未定义 jQuery 和无效的正则表达式:缺少 /
- 正则表达式无效组
- Nodejs 正则表达式错误:“无效的正则表达式:没有什么可重复的”
- 正则表达式在字面声明时有效,但在使用新运算符和变量值声明时无效
- 用于修复无效 JSON 的正则表达式
- 无效的正则表达式标志 a
- 正则表达式负面外观在 JavaScript 中无效
- 如何在下面修复这个无效的正则表达式标志
- javascript无效正则表达式:Unmatched ')'
- RegEx返回SyntaxError:无效正则表达式:/*/:不需要重复