Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式选择键和不带相等值的值_Javascript_Regex_String - Fatal编程技术网

Javascript 使用正则表达式选择键和不带相等值的值

Javascript 使用正则表达式选择键和不带相等值的值,javascript,regex,string,Javascript,Regex,String,有这样一根线: "let key1=value1; let key2=value2;" 我想使用regex选择键和值作为组,我已经尝试使用look-around /(\w+)(\w+)/g 但是它对我不起作用,有什么建议吗?下面的正则表达式应该可以做到这一点:(让(\w+?=?(\w+)+)+。 每个let语句都是匹配的,其中键是组2,值是组3。更具体地说,我们可以使用(\w+)=?(\w+)+表达式部分是一个前瞻性的零宽度断言,它不使用文本,但要求文本位于右侧。当您说(?

有这样一根线:

"let key1=value1; let key2=value2;"
我想使用regex选择键和值作为组,我已经尝试使用look-around

/(\w+)(\w+)/g


但是它对我不起作用,有什么建议吗?

下面的正则表达式应该可以做到这一点:
(让(\w+?=?(\w+)+)+

每个
let
语句都是匹配的,其中键是组2,值是组3。

更具体地说,我们可以使用
(\w+)=?(\w+)+表达式部分是一个前瞻性的零宽度断言,它不使用文本,但要求文本位于右侧。当您说
(?=\=)(\w+
时,您希望
\w+
模式开始匹配
=
。由于
\w
=
不匹配,您的正则表达式总是失败

使用

JavaScript(借用自):

var myString=“let key1=value1;let key2=value2;”;
var myRegexp=/(\w+)=(\w+)/G
match=myRegexp.exec(myString);
while(匹配!=null){
log(匹配[1]+”,“+匹配[2]);
match=myRegexp.exec(myString);

}
Maybe:
let\s(\w+)=(\w+)在哪里可以获取组1作为键,组2作为值?只需使用它,
/(\w+)\s*=\s*(\w+)/g
。但是,您不应该使用正则表达式来解析JS代码。它有解析器。@JvdV nope它将选择相等的,也将选择白色spaces@WiktorStribiżew它将选择我不想选择的相等值,我试图在虚拟机上运行它之前编辑字符串代码。它不会选择它。它将匹配它。但是您将能够获得捕获的子字符串。
/(\w+)=(\w+);/g