正则表达式模式提取字符串

时间:2015-01-27 03:02:54

标签: java regex

我尝试从下面的文字中提取以下字符串 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets

到目前为止,这是我的解决方案:\s+((\w:\\.*(?:\()))

但这包括提取的字符串中的"("。如何摆脱"("

  

C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets (2015,5):   错误MSB3091:任务失败,因为" AxImp.exe"没找到,或者   没有安装正确的Microsoft Windows SDK。任务正在寻找   for" AxImp.exe"在" bin"位于该位置下方的子目录   在注册表项的InstallationFolder值中指定   HKEY_LOCAL_MACHINE \ SOFTWARE \微软\微软   的SDK \的Windows \ v8.0A \ WinSDK-NetFx40Tools-86。你或许可以解决   通过执行以下操作之一来解决此问题:1)安装Microsoft   Windows SDK。 2)安装Visual Studio 2010. 3)手动设置   上面的注册表项到正确的位置。 4)通过正确的   位于" ToolPath"任务的参数。

1 个答案:

答案 0 :(得分:2)

将最后的非捕获组更改为正向前瞻。

\s*((\w:\\.*(?=\()))

OR

\s+((\w:\\.*(?=\()))

我还建议您按顺序将.*更改为.*?\s*((\w:\\.*?(?=\())),以提供非贪婪的匹配。

DEMO