小编Uro*_*nym的帖子

Lua string.match使用不规则的正则表达式?

我很好奇为什么这不起作用,需要知道为什么/如何解决它; 我试图检测一些输入是否是一个问题,我很确定string.match是我需要的,但是:

print(string.match("how much wood?", "(how|who|what|where|why|when).*\\?"))

返回零.我很确定Lua的string.match使用正则表达式来查找字符串中的匹配项,因为我在成功之前使用了通配符(.),但也许我不了解所有的机制?Lua在字符串函数中是否需要特殊的分隔符?我在这里测试了我的正则表达式,所以如果Lua使用常规正则表达式,似乎上面的代码会返回"how much wood?".

你能不能告诉我我做错了什么,我的意思是什么,或者指出一个很好的参考,我可以获得有关Lua的字符串操作函数如何利用正则表达式的全面信息?

regex lua

7
推荐指数
2
解决办法
7036
查看次数

不能抛出私有成员类的实例? - Java

这个错误意味着什么,为什么适用?在一个与我的情况相关的案例中,我无法找到关于成员类和静态上下文的内容,或者那些含义的内容.

这是我得到的错误:

non-static variable this cannot be referenced from a static context

它指向这一行,并指向new运营商:

throw new ParenthesisException();

ParenthesisException是主类的私有成员类.我认为问题可能与此有关,但这就是我所能想到的.

这是我对ParenthesisException的定义.它在主类定义中:(如果格式不是很好,我很抱歉)

private class ParenthesisException extends Throwable
{
    public ParenthesisException(){}
    public String strErrMsg()
    {
        return "ERROR: Every '(' needs a matching ')'";
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现错误信息相当神秘.我将非常感谢"静态上下文"的简要说明,以及为什么new运算符不适用于我的成员类,以及如何抛出私有成员类的实例.

java static exception inner-classes

4
推荐指数
1
解决办法
899
查看次数

try/catch不适用于静态成员throwable类?

正如标题所示,我在抛出静态成员类时遇到了一些问题.但我不确定这是不是问题,编译器给了我关于我应该做什么的混合信号!我的程序的类和函数都在一个文件中.

这是我的一个Throwables的定义(其他的基本相同):

private static class ParenthesisException extends Throwable
{
    public ParenthesisException(){}
    public String strErrMsg()
    {
        return "ERROR: Every '(' needs a matching ')'";
    }
}
Run Code Online (Sandbox Code Playgroud)

我把它放在一个成员函数中,该函数main在try/catch语句中被调用.我把我的另一个Throwable类放在一个被maintry/catch语句调用的函数调用的函数中.以下是它的一小部分:

try
{
    parseFormula(cin.nextLine());
}
catch(ParenthesisException e)
{
    System.out.println(e.strErrMsg());
}
catch(OperatorException e)
{
    System.out.println(e.strErrMsg());
}
Run Code Online (Sandbox Code Playgroud)

parseFormula是静态成员函数throw ParenthesisException.

编译器说:

jcalc.ParenthesisException的无法访问的catch块.永远不会从try语句主体抛出此异常

但我确实把它扔在了parseFormula中:

if(n_lpar != n_rpar)
    throw new ParenthesisException();
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我删除try/catch时,它告诉我异常没有被捕获.这让我感到困惑,因为之前,它说它ParenthesisException从未被抛出,现在它说它从未被捕获,但抛出.

我想知道这是否与它们都是静态成员(类和函数)的方式有关,以及我如何解决这个问题.

java

0
推荐指数
1
解决办法
709
查看次数

标签 统计

java ×2

exception ×1

inner-classes ×1

lua ×1

regex ×1

static ×1