首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析一些奇怪的文本格式

解析一些奇怪的文本格式
EN

Stack Overflow用户
提问于 2010-03-11 01:44:49
回答 2查看 193关注 0票数 3

我正在尝试解析一些由第三方应用程序返回的数据(一个TSV文件)。我已经将所有数据整齐地解析到每个字段中(请参阅Parse a TSV file),但我不知道如何格式化某些字段。

有时字段中的数据是这样封装的:

代码语言:javascript
复制
=T("[FIELD_DATA]")

(我相信这是某种Excel格式。)

当发生这种情况时,特定的字符被CHAR(ASCII_NUM)转义,字符串的其余部分也被封装,就像上面的例子一样,没有只出现在字段开头的=。

那么,有没有人知道我如何解析如下所示的字段:

代码语言:javascript
复制
=T("- Merge User Interface of Global Xtra Alert and EMT Alert")&CHAR(10)&T("- Toaster ?!")&CHAR(10)&T("")&CHAR(10)&T("")&CHAR(10)&T("None")&CHAR(10)&T("")&CHAR(10)&T("None")

(任意数量的CHAR/T()组)。

我一直在考虑正则表达式或字符串循环,但我怀疑这是否有效。帮帮忙,有人吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-11 02:04:52

我会使用类似于Darin的方法,但他的正则表达式对我不起作用。我会用这个:

代码语言:javascript
复制
(=T|&CHAR|&T)(\("*([A-Za-z?!0-9 -]*)"*\))+

您将发现Groups[2] (请记住,这些数据的偏移量为零)将是()""中的数据(如果""存在)。例如,这将会得到:

- Merge User Interface of Global Xtra Alert and EMT Alert

在:

=T("- Merge User Interface of Global Xtra Alert and EMT Alert")

和:

10

在:

&CHAR(10)

如果您有:

&T("")

它将在Groups2中产生一个null。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-03-11 01:53:19

代码语言:javascript
复制
class Program
{
    public static void Main(string[] args)
    {
        var input = @"=T(""- Merge User Interface of Global Xtra Alert and EMT Alert"")&CHAR(10)&T(""- Toaster ?!"")&CHAR(10)&T("""")&CHAR(10)&T("""")&CHAR(10)&T(""None"")&CHAR(10)&T("""")&CHAR(10)&T(""None"")";
        var matches = Regex.Matches(input, @"T\(\""([^\""]*)\""\)");
        foreach (Match match in matches)
        {
            Console.WriteLine(match.Groups[1].Value);
        }            
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2419192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档