我需要一个正则表达式,它将从一个字符串中提取文件的完整路径,如下所示:
c:\DevProjects\Web Projects\RD_deploy\obj\Release\Source\App_Code\BusinessLogic\WebMethodTypes\WebCompressionResult.cs(33): error CS0246: The type or namespace name 'CompressionResult' could not be found (are you missing a using directive or an assembly reference?)
或
c:\DevProjects\AssaultRifle.cs(157): error CS0246: The type or namespace name 'Gunpowder' could not be found (are you missing a using directive or an assembly reference?)
答案 0 :(得分:2)
尝试:
^(.*)\([0-9]+\):.*$
这应该这样做。
答案 1 :(得分:2)
^([^\(]+)
这将使字符串的开头(第一个(
)进入第1组;在您的情况下,整个路径最多为(33)...
。
编辑: 如果你的文件名中可能有括号,事情就会变得复杂一些。
^(.+)(\(\d+\)):
将所有内容与括号后面的数字匹配,后跟冒号,如“(33):”或“(157):”,进入第1组。
答案 2 :(得分:1)
试试这个。
([a-zA-Z]:(?:\\\\\w+(?:\s+\w+)*)+\.\w+)