0

如何获取正则表达式以获取文件中name =之后的值,并将其替换。我有一个名为“myfile.txt”的文件。

public static void main(String[] args)
    File TextFile = new File("C:\\text.txt");
    if (TextFile.exists()) {
        try {
            ReplaceWordInFile(TextFile, "haical", "arnanda");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

private static void ReplaceWordInFile(File MyFile, String OldText, String NewText)
        throws IOException {

    File tempFile = File.createTempFile("filetemp", ".tmp");
    FileWriter fw = new FileWriter(tempFile);

    Reader fr = new FileReader(MyFile);
    BufferedReader br = new BufferedReader(fr);

    while (br.ready()) {
        fw.write(br.readLine().replaceAll(OldText, NewText) + "\n");
    }

    fw.close();
    br.close();
    fr.close();
    tempFile.renameTo(MyFile);
}

文件 C:\text.txt 的内容是:

name = haical
address = Michigan 48309, Amerika Serikat
age = 19
gender = male
activity = school
hoby = hiking, travel

如果我在第一行运行上面的程序,name = haical 将更改为 name = arnanda。

我的问题是 from 的值name不是 'haical' 而是另一个值,所以我想在name = blablabla之后获取值。

此外,有时该语句name = haical不会保留其空格数并更改其位置。

稍后输出的内容示例是:

address = Michigan 48309, Amerika Serikat
name   =    haical  
age = 19
gender = male
activity = school
hoby = hiking, travel

所以它并不总是在第一行和后面的一些空格=,但它总是以name =开头。

提前致谢。

4

1 回答 1

1

利用

....replaceAll("^name\\s*=\\s*" + YourNameVariableToReplace + "\\s*$", "name="+YourNameVariableToInsert)

替换字符串。如果他可能包含 Regex-Control-Chars,也许您需要先转义 Name。

于 2013-01-11T16:17:04.040 回答