0

脚本文件内容是

//{input: x(width),y(height);
//output: z(area);}

function(x,y)
z=x*y

我只需要阅读这些行。花括号中数据的正则表达式是什么

//{input: x(width),y(height);
//output: z(area);}

我尝试了以下

    Dim sr As StreamReader = New StreamReader(scriptpath)
    ' Dim textToParse As String
    Dim scriptText As String
    scriptText = sr.ReadToEnd

    Dim extractCommentRegex As New Regex("\/\/\{(.*?)\}")
    Dim textToParse As Match = extractCommentRegex.Match(scriptText)
4

1 回答 1

2

尝试这个

^\/\/\{.*\}

使用 /m 选项使点匹配换行符。

你好,抱歉好久没写vb了,所以没有把答案说得够清楚。我创建了一个控制台项目来测试以下代码:

    Dim sr As StreamReader = New StreamReader("d:\script1.txt")
    ' Dim textToParse As String
    Dim scriptText As String
    scriptText = sr.ReadToEnd

    Dim match = Regex.Match(scriptText, "^\/\/\{.*\}", RegexOptions.Singleline Or RegexOptions.Multiline Or RegexOptions.IgnorePatternWhitespace)

    Console.WriteLine(match.Success)

    Dim sw As StreamWriter = New StreamWriter("d:\output.txt")

    sw.Write(match.Value)

    sw.Flush()
    sw.Close()
    Console.ReadLine()

我会关注 output.txt。

//{input: x(width),y(height);
//output: z(area);}

我认为你需要提供 RegexOptions 如果你有输入文件的 Windows 格式 LF。有关问题的详细信息,请参阅此线程:

.NET 正则表达式点字符匹配回车?

于 2013-10-22T06:47:13.203 回答