1

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

key=value

如何制作匹配key排除的正则表达式=

换句话说:

var regex = //Regular Expression goes here
regex.exec("key=value")[0]//Should be "key"

如何制作匹配value排除的正则表达式=

我正在使用此代码为 Prism 语法荧光笔定义一种语言,因此我无法控制执行正则表达式匹配的 JavaScript 代码,也无法使用split.

4

4 回答 4

3

好吧,你可以这样做:

/^[^=]*/     // anything not containing = at the start of a line
/[^=]*$/     // anything not containing = at the end of a line

最好查看 Prism 的lookbehind属性,并使用以下内容:

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

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

于 2012-08-10T19:47:36.370 回答
0
.*=(.*)

这将匹配 = 之后的任何内容

(.*)=.*

这将匹配之前的任何内容 =

如果您期望多个 = 字符,请查看贪婪与不贪婪的量词。

编辑:正如OP已经澄清他们正在使用javascript:

var str = "key=value"; 
var n=str.match(/(.*)=/i)[1]; // before =
var n=str.match(/=(.*)/i)[1]; // after =
于 2012-08-10T19:18:04.743 回答
0

使用这个正则表达式(^.+?)=(.+?$)

第 1 组包含密钥

第 2 组包含值

但拆分是更好的解决方案

于 2012-08-10T19:24:22.730 回答
0
var regex = /^[^=]*/;
regex.exec("key=value");
于 2012-08-10T20:18:59.810 回答