我正在尝试计算正则表达式以获得 en
字符串的一部分 word_en-gb
我正在使用 .match();
例如
var string = "word_en-gb";
string.match(/(?<=\_)(.*?)(?=\-)/);
这(?<=\_)(.*?)(?=\-)
在 regex101.com
上工作但是当我在我的代码中使用它时,我得到错误 Uncaught SyntaxError: Invalid regular expression: /(?<=_)(.*?)(?=-)/: Invalid group
和
\_(.*?)\-
匹配 regex101 但生成 _en-,en
最佳答案
Lookbehind 在 Javascript 正则表达式中不可用。您可以使用捕获组 #1:
var string = "word_en-gb";
string.match(/_(.*?)(?=-)/);
//=> ['_en', 'en']
或否定:
string.match(/_([^-]*)/);
//=> ['_en', 'en']
关于Javascript 正则表达式查找 _ 和 - 之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30648538/