如何用双引号提取字符串以进行本地化

时间:2016-04-28 20:01:35

标签: objective-c regex terminal grep

我正在尝试提取ids = exclude_array.map(&:issue_id) #=> [50231, 43896] your_objects.select {|o| ids.exclude?(o.issue_id) } 的字符串。有这么多文件,其中一些字符串被标记为localization,而其中一些不是。{/ p>

我可以使用NSLocalizedStringsNSLocalizedStrings抓取ibtool,但我无法在没有genstrings的情况下提取普通字符串。

我不擅长正则表达式,但我想出了这个NSLocalizedString 并在grep的帮助下:

"[^(]@\""

它工作正常,并且所有字符串实际上都被抓到了一个txt文件中,但问题是,

如果在我的代码中有一行:

grep -i -r -I "[^(]@\"" * > out.txt

我只希望grep抓住 ..... initWithTitle:@"New Sketch"..... 部分,但它抓住整条线。

因此,在@"New Sketch"文件中,我看到out.txt以及一些不需要的行。

如何编写正则表达式以仅抓取双引号中的字符串?

我使用here中提到的正则表达式尝试了grep命令,但它给了我语法错误。

对于前者,我试过:

initWithTitle:@"New Sketch"

它给了我

 grep -i -r -I (["'])(?:(?=(\\?))\2.)*?\1 * > out.txt

1 个答案:

答案 0 :(得分:0)

在xcode中,打开您的项目。转到编辑器 - >导出本地化...它将创建文件的文件夹。标记为本地化的所有内容都将在那里提取。无需自己解析。它将采用XML格式。

如果你想努力,你可以按照你现在尝试的方式解析这些文件吗?它也会有Storyboard字符串,顺便说一句。