-4

我正在使用以下代码。它仅在列表框中显示 HTML 文件我想在 OutPut 中将图 1、图 1.2、图 2、图 2.1 等等......替换为图 1......

请帮我

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        FileInfo file = new FileInfo(textBox1.Text);
        StreamReader stRead = file.OpenText();
        while (!stRead.EndOfStream)
        {
            listBox1.Items.Add(stRead.ReadLine());
        }
    }
}

输出

<html>
<head>
</head>
<body>
<div>
<p class="epigraph"> very Figure 1 But thanks to you, we won&#x0027;t do it </p>
<p class="epigraph-right"> birthday Figure 1.1  Milton Friedman, November 8, 2002</p>
<p class="indent">Not Figure 2 able to take it any longer New York </p>
<p class="indent">Mr. Cutler Figure 2.1 of the parallel plunges</p>
</body>
</div>
</html>
4

3 回答 3

1

我认为你需要测试一下

FileInfo file = new FileInfo(textBox1.Text);
StreamReader stRead = file.OpenText();
while (!stRead.EndOfStream)
{
    string strTemp = stRead.ReadLine();
    for (int i = 1; i < MaxFigureCount; i++)
        strTemp = strTemp.replace("Figure "+i+" ", "Figure "+i+".x ");
    listBox1.Items.Add(strTemp);
}

如您所见,我也不知道您的情况,因为MaxFigureCount".x"无法弄清楚您要做什么。

最后我还有额外的空间来确保我们不会错过 2.1 或 1.2(如果它们已经存在)。

于 2013-09-12T08:51:35.977 回答
0

尝试使用 Regex.Replace:

listBox1.Items.Add(Regex.Replace(stRead.ReadLine(), @"\sFigure \d+.\d+\s", " Figure 1 "));

我做了一些测试,显然工作正常,但我不是正则表达式语法专家。

于 2013-09-12T08:56:19.843 回答
0

使用字符串。替换

while (!stRead.EndOfStream)
{
    string test = stRead.ReadLine();
    string correctString = test.Replace("Figure 1", " Figure 1.2");
    //Etc. etc.....
    listBox1.Items.Add(correctString);
}
于 2013-09-12T08:52:22.403 回答