验证文本文件的格式?

时间:2011-02-09 10:09:19

标签: regex vb.net

我有一个通过FTP下载.txt文件的应用程序,然后调用一些sql将文件数据插入到我的数据库中。我想在尝试插入之前检查文件是否格式正确。

该文件应包含若干行,每行具有以下格式:

(4 letter code) (tab) (3 or 4 letter code) (tab) (date as dd-MMM-yy) (tab) (variable length text description) (tab) (1 letter code)

有没有一种好方法可以检查文件中的每一行是否都遵循这种模式,并警告我是否没有?

1 个答案:

答案 0 :(得分:4)

听起来像regular expressions的典型用例。 创建一个正则表达式模式,并将其与文件中的每一行匹配。

如果您不熟悉正则表达式,除了上面的链接之外,您可能会发现this link也有帮助。

您正在寻找的模式可能是这样的:

    ^\w{4}\t\w{3,4}\t\d{2}\-\D{3}\-\d{2}\t.*\t\w$

它将匹配这些文本(想象_是一个标签):

test_foo_12-FEB-11_this is a text_X
test_fbar_01-jan-15_bla bka bla_o

但不是:

test123_foo_12-FEB-11_this is a text

你可以这样做:

Dim pattern = "^\w{4}\t\w{3,4}\t\d{2}\-\D{3}\-\d{2}\t.*\t\w$"
For Each line In text
    Console.WriteLine(String.Format("{0} {1}", _
                      line, _
                      If(Regex.IsMatch(line, pattern), "is valid", "is invalid"))
Next