gpt4 book ai didi

java - 带有正则表达式的代码似乎无缘无故结束

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:56 26 4
gpt4 key购买 nike

我写了一段代码来“编译”一个文件(主要是为了我自己的练习)。它首先将文件中的所有行加载到 RAM 中,然后读取文件。为了理解其中的内容,我使用了正则表达式和 String.matches()String.contains() 方法。现在我遇到了一个非常奇怪的问题,这是我以前从未遇到过的:程序无缘无故地结束了。它不会给出错误或异常,或任何其他可能有问题的指示。

这就是我要说的部分:

else if (s.contains("interface")) {
if (s.matches("\\s*interface\\s*{\\s*")) { //The program seems to stop on this line
logger.info("Found properties block opener on line " + (i + 1) + ": " + s);

}
else if (s.matches("\\s*interface\\s*")) {
if (lines[i + 1].matches("\\s*{\\s*")) {
logger.info("Found properties block opener on lines " + (i + 1) + " and " + (i + 2) + ": " + s);

}

}

}

s 是要搜索的 Stringlines[i + 1] 是下一行,我创建了一个记录器对象来记录编译。

使用Eclipse 中的调试器,我发现当遇到注释行时,它会跳转到Pattern 类,然后就停止了。我的意思是它打开一个包含 Pattern 类源代码的新选项卡,下一步它终止,没有给出任何逻辑原因,或者根本没有任何原因。

我的正则表达式有问题吗? (它尝试搜索这样的字符串:interface {else if 语句寻找替代方案:

interface
{

我尝试重新启动 Eclipse,因为我认为那里可能有问题,但没有帮助。

如果需要更多代码,请发表评论告诉我。

最佳答案

{ 是需要转义的特殊元正则表达式字符。使用此正则表达式:

s.matches("\\s*interface\\s*\\{\\s*")

关于java - 带有正则表达式的代码似乎无缘无故结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768838/

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