搜索字符串文字

问题描述 投票:0回答:7

在寻求本地化的过程中,我需要找到散布在源代码中的所有字符串文字。我正在寻找一种方法将其编写为修改后源存储库检查的脚本。 (即,在有人检查了一些内容后,有一个框设置来检查此统计数据)我可能会使用 NAnt 和 CruiseControl 或其他东西来处理 CVS 的管理(在我的例子中是 StarTeam :( )但是你知道任何可编写脚本的东西吗? (或命令行)实用程序可以准确地循环源代码查找字符串文字?我意识到我可以根据正则表达式进行简单的字符串查找,但想要更划算。(也许分析字符串或将其分类)因为很多时候字符串不一定需要翻译。有什么想法吗?

.net string localization string-literals
7个回答
40
投票

Visual Studio 2010 及更早版本:

  1. 在文件中查找 (CTRL+SHIFT+F)
  2. 使用:正则表达式
  3. 查找:
    :q
    (带引号的字符串)
  4. 查找全部

“查找结果”窗口现在将包含所有文件的报告,其中包含行号以及带引号字符串的行本身。

对于 Visual Studio 2012 及更高版本,搜索

((\".+?\")|('.+?'))
参考,向 @CincauHangus 致敬)


2
投票

它使用编译后的二进制文件而不是源代码,但 Sysinternals 的 Strings 应用程序可能很有用。


2
投票
  1. 在文件中查找 (CTRL+SHIFT+F)
  2. 查找选项 -> 检查
    Use Regular Expressions

对于文字中的特定文本:

  1. 查找内容:
    "+.*(MYSPECIFICTEXT)+.*"+

对于所有文字

  1. 查找内容:
    "+.*"+

然后

  1. 查找全部

1
投票

要查找所有

Text="textonly"
实例,请在搜索时使用以下正则表达式:

(Text=)(")([a-z])

这有助于查找

Text="*"
,但排除已转换为使用资源文件的文本:

Text="<%$ Resources:LocalizedText, KeyNameFromResourceFile%>"

此外,

(>)([a-z])
还可用于查找标签之间的文字,如下所示:

<h1>HeaderText</h1>

0
投票

CodePlex 上有一个 C# 解析器,您或许可以使用。


0
投票

嗨,这是用于搜索文字的正则表达式,我用它来查找要翻译的文本。 它还包括空格和不同的引号

正则表达式:

([",`,'])([\w,\s]*)([",`,'])

searchstring: var test='这是一个测试';


0
投票

补充答案。要排除注释掉的行和摘要行,请使用以下命令: ^(?!\s{0,}[/]{2,}).+((".+?")|('.+?'))

© www.soinside.com 2019 - 2024. All rights reserved.