gpt4 book ai didi

java - Matcher 在 Ubuntu 和 Windows 上给出不同的结果

转载 作者:行者123 更新时间:2023-11-29 07:10:33 24 4
gpt4 key购买 nike

我在 Ubuntu 和 Windows 上运行完全相同的 eclipse 项目,但得到不同的输出。

不均匀的行为出现在以下代码中:

String regex = "<token id=\"(.*)\">.*\n.*<word>(.*)</word>.*\n.*<lemma>(.*)</lemma>.*\n.*\n.*\n.*<POS>(.*)</POS>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(fileAsString);
while (matcher.find()) {
...
}

(matcher.find()) 检查在 Windows 上返回 false,但在 Ubuntu 上返回 true(这是预期的行为)。

Eclipse Juno 和 jdk7。

也许这与操作系统无关,但这是我在并行调试和检查两个环境中的项目属性后发现的唯一不同..

知道区别吗???

最佳答案

您正在匹配 \n,这是 Linux 的行结尾,但不是 Windows(您需要 \r\n 用于 Windows)。 \r?\n 之类的东西可以解决您的特定问题。

就是说,您永远不应该使用正则表达式解析任何类似 HTML 的内容(包括 XML)。您错过了 XML 的所有内容,尤其是它在手写“错误”方面的灵 active ,例如不同顺序的标签、空格等。

关于java - Matcher 在 Ubuntu 和 Windows 上给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266998/

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