如果我在JavaScript中有一个字符串
key=value
如何制作符合key
的{{1}}匹配的RegEx?
换句话说:
=
如何制作符合var regex = //Regular Expression goes here
regex.exec("key=value")[0]//Should be "key"
的{{1}}匹配的RegEx?
我将此代码用于define a language for the Prism syntax highlighter,因此我无法控制执行正则表达式匹配的JavaScript代码,也无法使用value
。
答案 0 :(得分:3)
嗯,你可以这样做:
/^[^=]*/ // anything not containing = at the start of a line
/[^=]*$/ // anything not containing = at the end of a line
查看Prism的lookbehind
属性可能会更好,并使用类似的东西:
{
'pattern': /(=).*$/,
'lookbehind': true
}
根据the documentation,这会导致=
字符不属于此模式匹配的标记。
答案 1 :(得分:0)
.*=(.*)
这将匹配=
之后的任何内容(.*)=.*
这将匹配=
之前的任何内容如果您期望不止一个=字符,请查看贪婪与不同意量词。
编辑:因为OP澄清他们正在使用javascript:
var str = "key=value";
var n=str.match(/(.*)=/i)[1]; // before =
var n=str.match(/=(.*)/i)[1]; // after =
答案 2 :(得分:0)
使用此正则表达式(^.+?)=(.+?$)
第1组包含密钥
第2组包含值
但拆分是更好的解决方案
答案 3 :(得分:0)
var regex = /^[^=]*/;
regex.exec("key=value");