很明显,有很多问题看起来像一个简单的正则表达式将解决,但事实证明,使用正则表达式很难解决.
那么,不是正则表达式专家的人怎么知道他/她是否应该学习正则表达式来解决给定的问题?
(请参阅"正则表达式解析C#源代码以查找所有字符串",以便我提出这个问题.)
这似乎总结得很好:
(我刚刚更改了问题的标题以使其更具体,因为在C#中使用Regex的一些问题在Perl和JScript中得到了解决,例如,两个引用级别使Regex难以理解.)
我需要估计遗留项目所需的本地化工作量.我正在寻找一个可以指向目录的工具,它会:
你知道任何可以做到这一点的工具吗?写它会很简单,但如果有时间可以保存,那为什么不保存呢?
有人能指出我从C源代码中删除字符串的程序吗?例
#include <stdio.h>
static const char *place = "world";
char * multiline_str = "one \
two \
three\n";
int main(int argc, char *argv[])
{
printf("Hello %s\n", place);
printf("The previous line says \"Hello %s\"\n", place);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
变
#include <stdio.h>
static const char *place = ;
char * multiline_str = ;
int main(int argc, char *argv[])
{
printf(, place);
printf(, place);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是一个非常像stripcmt的程序 ,我只想删除字符串而不是注释.
我正在寻找一个已经开发的程序而不仅仅是一些方便的正则表达式的原因是因为当你开始考虑所有极端情况(字符串中的引号,多行字符串等)时,事情通常会开始(比)更复杂第一次出现.REs可以实现的限制是有限制的,我怀疑这项任务是不可能的.如果你认为你有一个非常强大的正则表达式随时提交,但请不要sed 's/"[^"]*"//g'像天真的建议.
(不需要在注释中对(可能是未结束的)字符串进行特殊处理,这些字符串将首先被删除)
支持具有嵌入换行符的多行字符串并不重要(不合法C),但必须支持跨越以\结尾的多行的字符串.
我们被要求在代码中提供所有可能的错误消息以用于支持目的.
不幸的是它们并不都位于资源文件中,所以我想如果我们可以获得应用程序中所有字符串的列表,我们就可以从那里过滤出错误消息.
有什么能让我在C#应用程序中执行此操作吗?
干杯