gpt4 book ai didi

java - 正则表达式匹配行尾两次

转载 作者:行者123 更新时间:2023-12-01 11:45:18 24 4
gpt4 key购买 nike

我正在使用文本文件来保存游戏的所有书面文本。我试图通过使用 allText.split(regex) 将文本文件的文本按行拆分为名称和描述来获取项目的描述。文本文件如下所示:

Claws:Sharp claws capable of inflicting damage.
Potion:A drink that heals wounds.

正则表达式如下所示:

[:\n\r]

正则表达式正确匹配冒号,但它对换行符做了一些奇怪的事情。在第一行末尾,它不是匹配一次,而是匹配两次,此时...

要查看这些拆分的位置,请查看此处:http://fiddle.re/gn8ew6 (第一行是 47 个字符,第二行是 33 个字符)。

如何防止这种情况发生?

最佳答案

您的正则表达式在行尾匹配两次,因为您的行以 \n\r\r\n 结尾。你可以use a regex like this :

:|\n\r?+|\r\n?+

基本上,这匹配 :,或者匹配 \n 后跟可选的 \r (使用 \r 如果它在那里),或者它匹配 \r 后跟一个可选的 \n (再次消耗 \n 如果它在那儿)

但是,我建议您只需逐行阅读该文件。您可以使用 BufferedReader 来做到这一点:

BufferedReader read = new BufferedReader(new InputStreamReader(new File(filename)));
read.readLine(); //reads a line

关于java - 正则表达式匹配行尾两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com