我正在尝试使用正则表达式来获取字符串en
的{{1}}部分
我正在使用word_en-gb
例如
.match();
此var string = "word_en-gb";
string.match(/(?<=\_)(.*?)(?=\-)/);
适用于(?<=\_)(.*?)(?=\-)
,但当我在代码中使用它时,我收到错误regex101.com
和
Uncaught SyntaxError: Invalid regular expression: /(?<=_)(.*?)(?=-)/: Invalid group
在regex101上匹配,但会生成\_(.*?)\-
答案 0 :(得分:5)
Javascript正则表达式中没有Lookbehind可用。您可以使用捕获的组#1:
var string = "word_en-gb";
string.match(/_(.*?)(?=-)/);
//=> ['_en', 'en']
或否定:
string.match(/_([^-]*)/);
//=> ['_en', 'en']