正则表达式匹配dot'之间的所有内容。'和紧密的支撑'('

时间:2016-02-03 16:59:41

标签: javascript regex sublimetext2 syntax-highlighting

我有func logInViewController(logInController: PFLogInViewController, didFailToLogInWithError error: NSError?) { print(error) print("failed to login") } ,我希望在正则表达式中匹配myObject.myFunction()。如果我想匹配两个字符串之间的所有内容,则表达式myFunction有效;因此abc(.*)def会按预期返回var str = 'abc test def';str.match(/.(.*)def/)。但表达式["abc test def", " test "]不起作用。我想在我的sublime文本中添加一个Javascript语法2.谢谢。

1 个答案:

答案 0 :(得分:3)

  

但是表达式。(。*)(不起作用。

因为.是正则表达式中的特殊字符。要匹配文字.,请将其转义:\.

(也很特别,所以你也需要逃避它:



var str = "/* Some function call */ myObject.myFunction() /* stuff */";
var match = str.match(/\.(.*)\(/);
document.body.innerHTML = match[1];




由于.*是一个贪婪的子模式,因此它与该行的最后一个(匹配。您可以使用否定字符类[^(]*来匹配第一个(



var str = "/* Some function call */ myObject.myFunction() { var str = \"String ()\";} /* stuff */";
document.body.innerHTML += str.match(/\.([^(]*)/)[1] + "<br/>";
document.body.innerHTML += str.match(/\.(.*)\(/)[1];
&#13;
&#13;
&#13;