正则表达式匹配点 '.' 之间的所有内容并关闭大括号'('
Regex match everything between dot '.' and close brace '('
我有 myObject.myFunction()
,我想在正则表达式中匹配 myFunction
。如果我想匹配两个字符串之间的所有内容,表达式 abc(.*)def
有效;所以 var str = 'abc test def';str.match(/.(.*)def/)
会像预期的那样 return ["abc test def", " test "]
。但是表达式 .(.*)(
不起作用。我想在我的 sublime text 2 中添加一个 Javascript 语法。谢谢。
But the expression .(.*)( does not work.
因为.
是正则表达式中的特殊字符。要匹配文字 .
,请将其转义:\.
(
也比较特殊,所以也要转义:
var str = "/* Some function call */ myObject.myFunction() /* stuff */";
var match = str.match(/\.(.*)\(/);
document.body.innerHTML = match[1];
因为 .*
是一个贪婪的子模式,它匹配到行中的最后一个 (
。您可以使用否定字符 class [^(]*
来匹配第一个 (
:
var str = "/* Some function call */ myObject.myFunction() { var str = \"String ()\";} /* stuff */";
document.body.innerHTML += str.match(/\.([^(]*)/)[1] + "<br/>";
document.body.innerHTML += str.match(/\.(.*)\(/)[1];
我有 myObject.myFunction()
,我想在正则表达式中匹配 myFunction
。如果我想匹配两个字符串之间的所有内容,表达式 abc(.*)def
有效;所以 var str = 'abc test def';str.match(/.(.*)def/)
会像预期的那样 return ["abc test def", " test "]
。但是表达式 .(.*)(
不起作用。我想在我的 sublime text 2 中添加一个 Javascript 语法。谢谢。
But the expression .(.*)( does not work.
因为.
是正则表达式中的特殊字符。要匹配文字 .
,请将其转义:\.
(
也比较特殊,所以也要转义:
var str = "/* Some function call */ myObject.myFunction() /* stuff */";
var match = str.match(/\.(.*)\(/);
document.body.innerHTML = match[1];
因为 .*
是一个贪婪的子模式,它匹配到行中的最后一个 (
。您可以使用否定字符 class [^(]*
来匹配第一个 (
:
var str = "/* Some function call */ myObject.myFunction() { var str = \"String ()\";} /* stuff */";
document.body.innerHTML += str.match(/\.([^(]*)/)[1] + "<br/>";
document.body.innerHTML += str.match(/\.(.*)\(/)[1];