Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的C#项目中找到要本地化的字符串?_C#_Regex_Visual Studio - Fatal编程技术网

如何在我的C#项目中找到要本地化的字符串?

如何在我的C#项目中找到要本地化的字符串?,c#,regex,visual-studio,C#,Regex,Visual Studio,我正在尝试编写一个正则表达式,以便在VisualStudio或外部程序中使用,但没有成功。我想让这个表达式做的是: 匹配包含引用文本的行,如var myString=“应将其移出此处” 不匹配注释中的行,如///此方法有一些“引用的文本”或//这是“只是一条注释”,由于缩进,它们的开头可能有制表符 在VisualStudio中,我可以通过扩展名包括文件,比如*.cs,这样我就可以轻松跳过xml文件等等。但是,我无法排除那些*.Designer.cs文件,因此我发现通过扩展名或正则表达式包含和

我正在尝试编写一个正则表达式,以便在VisualStudio或外部程序中使用,但没有成功。我想让这个表达式做的是:

  • 匹配包含引用文本的行,如
    var myString=“应将其移出此处”
  • 不匹配注释中的行,如
    ///此方法有一些“引用的文本”
    //这是“只是一条注释”
    ,由于缩进,它们的开头可能有制表符
在VisualStudio中,我可以通过扩展名包括文件,比如
*.cs
,这样我就可以轻松跳过xml文件等等。但是,我无法排除那些
*.Designer.cs
文件,因此我发现通过扩展名或正则表达式包含和排除文件做得相当好;无论如何,如果有一种方法可以从VS中实现同样的效果,那就太好了


非常感谢您的帮助。

下面的正则表达式将匹配所有不以
/
开头并包含
的行

^(?!\s*\/\/).*(?=\").*$

有几种方法1)首先运行正则表达式删除所有注释,然后进行字符串解析2)编写一个理解注释和字符串规则的基本解析器3)在Roslyn上构建一些东西,它理解C#语法和语义。我不确定你的最终目标是什么,但Resharper可以做到这一点:只是一些旁注:如果你需要使用任何有效代码,您还需要考虑<代码> /**/<代码>注释、代码> /**/<代码>多行注释和一般多行语句。或者,像@ CODESSIONG语句,使用基于ROSLYN的东西。那么,您使用的是代码而不是平面文本文件。问题是有两种注释样式:代码> //< /COD。e> 和
/*
以及两种带有非平凡转义规则的字符串样式(普通和逐字)。逐字字符串甚至可以跨越多行。那么这个正则表达式将非常有用。
^(?!\/\/\\\/\\/\*.*(=\”).$
我通常不使用
/*
符号,所以它不是什么大问题。这里的问题是,这个正则表达式还包括以任何空格或制表符开头的行,后跟
/
(缩进)似乎
^(?!\s*\/\/).*(=\”.$
执行job@CodesInChaos是的,它不适用于多行注释。这将匹配单行
/
//
/*
注释。
^(?!\s*\/\/\/\*).*(?=\”.$