2014-06-20 22 views
0

我想寫一個正則表達式在Visual Studio中使用或外部程序沒有成功。我想那表情做的是:包含引用的文字像var myString = "This shall be moved out of here" 如何查找字符串以在我的C#項目中進行本地化?

    • 匹配的行不喜歡///<summary>This method has some "quoted text"</summary>//This is "just a comment"註釋中匹配的行,它可以在其開頭有標籤由於壓痕。

    在Visual Studio中我能夠以包括擴展名的文件,說*.cs,這樣我就可以輕鬆地跳過XML文件等。但是我不能排除那些*.Designer.cs文件,所以我發現FileSeek能夠通過擴展名或正則表達式包含和排除文件做得非常好;無論如何,如果有一種方法可以從VS完成同樣的事情,那將會很棒。

    任何幫助將不勝感激,謝謝。

  • +0

    是刪除所有評論評論數接近1)首先運行正則表達式,然後串解析2)編寫一個理解規則徵求意見和字符串3)建立在羅斯林一些基本的語法分析器,它理解C#語法和語義。 – CodesInChaos

    +0

    我不確定你的最終目標是什麼,但Resharper可以做到這一點:http://www.jetbrains.com/resharper/features/internationalization.html –

    +0

    只是一些旁註:如果你需要這個工作任何有效的代碼,你還需要考慮'/ ** /'註釋,'/ ** /'多行註釋和一般多行語句。或者像@CodesInChaos說的那樣,使用基於Roslyn的東西。然後你使用代碼而不是平面文本文件。 – Flater

    回答

    0

    下面的正則表達式將匹配所有不會以//開頭幷包含"的行。

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

    DEMO

    +0

    問題是有兩種評論風格''''和'/ *'和兩個字符串樣式(普通和逐字)並且有不平凡的轉義規則。逐字字符串甚至可以跨越多行。 – CodesInChaos

    +0

    那麼這個正則表達式會很有幫助。 '^(?!\/\/| \/\ *)。*(?= \「)。* $'' –

    +0

    我通常不使用'/ *'表示法,所以這不是什麼大問題。這個正則表達式還包含以任何空格或製表符開頭的行,後跟'//'(縮進) – ccalboni

    相關問題