如何在我的C#项目中找到要本地化的字符串?
我正在尝试编写一个正则表达式,以便在VisualStudio或外部程序中使用,但没有成功。我想让这个表达式做的是:如何在我的C#项目中找到要本地化的字符串?,c#,regex,visual-studio,C#,Regex,Visual Studio,我正在尝试编写一个正则表达式,以便在VisualStudio或外部程序中使用,但没有成功。我想让这个表达式做的是: 匹配包含引用文本的行,如var myString=“应将其移出此处” 不匹配注释中的行,如///此方法有一些“引用的文本”或//这是“只是一条注释”,由于缩进,它们的开头可能有制表符 在VisualStudio中,我可以通过扩展名包括文件,比如*.cs,这样我就可以轻松跳过xml文件等等。但是,我无法排除那些*.Designer.cs文件,因此我发现通过扩展名或正则表达式包含和
- 匹配包含引用文本的行,如
var myString=“应将其移出此处”
- 不匹配注释中的行,如
或///此方法有一些“引用的文本”
,由于缩进,它们的开头可能有制表符//这是“只是一条注释”
*.cs
,这样我就可以轻松跳过xml文件等等。但是,我无法排除那些*.Designer.cs
文件,因此我发现通过扩展名或正则表达式包含和排除文件做得相当好;无论如何,如果有一种方法可以从VS中实现同样的效果,那就太好了
非常感谢您的帮助。下面的正则表达式将匹配所有不以
/
开头并包含“
的行
^(?!\s*\/\/).*(?=\").*$
有几种方法1)首先运行正则表达式删除所有注释,然后进行字符串解析2)编写一个理解注释和字符串规则的基本解析器3)在Roslyn上构建一些东西,它理解C#语法和语义。我不确定你的最终目标是什么,但Resharper可以做到这一点:只是一些旁注:如果你需要使用任何有效代码,您还需要考虑<代码> /**/<代码>注释、代码> /**/<代码>多行注释和一般多行语句。或者,像@ CODESSIONG语句,使用基于ROSLYN的东西。那么,您使用的是代码而不是平面文本文件。问题是有两种注释样式:代码> //< /COD。e> 和
/*
以及两种带有非平凡转义规则的字符串样式(普通和逐字)。逐字字符串甚至可以跨越多行。那么这个正则表达式将非常有用。^(?!\/\/\\\/\\/\*.*(=\”).$
我通常不使用/*
符号,所以它不是什么大问题。这里的问题是,这个正则表达式还包括以任何空格或制表符开头的行,后跟/
(缩进)似乎^(?!\s*\/\/).*(=\”.$
执行job@CodesInChaos是的,它不适用于多行注释。这将匹配单行/
或//
或/*
注释。^(?!\s*\/\/\/\*).*(?=\”.$