删除报价在正则表达式匹配

问题描述:

我有以下字符串:删除报价在正则表达式匹配

[assembly: AssemblyVersion("1.0.0.0")] 

现在的问题是,我要提取出1.0.0.0。这里的正则表达式,我可以拿出:

var pattern = "[^\\/]+\\[[a-z]+:\\s" + "AssemblyVersion"+ "(?:Attribute)?\\((.+)\\)\\]" ; 
var theString ="[assembly: AssemblyVersion("1.0.0.0")]"; 
var reAssemblyVersion = new RegExp(pattern,"m"); 
reAssemblyVersion.exec(theString); 
var theAnswer = RegExp.$1;  // theAnswer is "1.0.0.0", but I want it to be 1.0.0.0 

一定有什么东西我做错了在建立pattern变量,但找不到了..任何想法?

+0

你忘了包括在一个正则表达式报价(在“(”和之前的“)”之后) – kangax 2009-09-24 03:22:42

您的RegEx并未消除双重qoutes。

这里是正确的:

var pattern = "[^\\/]+\\[[a-z]+:\\s" + "AssemblyVersion"+ "(?:Attribute)?\\(\\\"(.+)\\\"\\)\\]" ; 
// Here --------------------------------------------------------------------^^^^ ^^^^ 

希望它可以帮助

为什么你就不能简单的东西,因为这:

\(\"([0-9.]*)\"\)