Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 - Fatal编程技术网

Javascript 如何生成一个正则表达式,使其匹配给定字符后一行中的所有内容?

Javascript 如何生成一个正则表达式,使其匹配给定字符后一行中的所有内容?,javascript,regex,Javascript,Regex,如果我在JavaScript中有一个字符串 key=value 如何生成与键匹配的正则表达式 换言之: var regex = //Regular Expression goes here regex.exec("key=value")[0]//Should be "key" 如何生成与值匹配的正则表达式 我使用这段代码来进行匹配,因此我不能控制JavaScript代码进行正则表达式匹配,也不能使用split .*=(.*) 这将匹配以后的任何东西= (.*)=.* 这将匹配以前的任何东

如果我在JavaScript中有一个字符串

key=value
如何生成与
键匹配的正则表达式

换言之:

var regex = //Regular Expression goes here
regex.exec("key=value")[0]//Should be "key"
如何生成与
值匹配的正则表达式

我使用这段代码来进行匹配,因此我不能控制JavaScript代码进行正则表达式匹配,也不能使用
split

.*=(.*)
这将匹配以后的任何东西=

(.*)=.*
这将匹配以前的任何东西=

如果您需要多个=字符,请查看贪婪量词与不贪婪量词

编辑:OP澄清了他们使用的是javascript:

var str = "key=value"; 
var n=str.match(/(.*)=/i)[1]; // before =
var n=str.match(/=(.*)/i)[1]; // after =
使用此正则表达式
(^.+?)=(.+?$)

组1包含密钥

第2组包含值


但是拆分是更好的解决方案

您可以这样做:

/^[^=]*/     // anything not containing = at the start of a line
/[^=]*$/     // anything not containing = at the end of a line
最好查看Prism的
lookbehind
属性,并使用如下内容:

{
    'pattern': /(=).*$/,
    'lookbehind': true
}

根据这将导致
=
字符不是此模式匹配的标记的一部分。

是否希望它返回替换键的值?您正在使用grep/任何其他程序,还是希望在编程语言中使用它?哪一个?我会把它拆分成:
'key=value'.split('=')。不是一个选项。我正在为prismjs编写一个扩展,以突出显示Java属性文件中的语法。它需要正则表达式。它应该为
foo=bar=baz
做什么?理想情况下
foo
将由第一个正则表达式匹配,而
bar=baz
由第二个正则表达式匹配。我建议
[^=]*=(.*)
-更有效(虽然使用非常短的键和非编译语言,也许
*
…会更有效?hmmmthe
[1]
部分对我来说不是真正可用的。是否有一个只匹配值而不匹配
=value
的正则表达式对混淆表示抱歉。我只是编辑了这个问题来澄清我需要什么。@CodeJockey在OP更改问题之前,我从一个JSFIDLE开始。你可以在那里测试什么更有效:
var regex = /^[^=]*/;
regex.exec("key=value");