Deadbolt 2 的 Playframework:模式正则表达式不匹配

Playframework with Deadbolt 2: Pattern regular expression not match

我正在使用 Deadbolt2play-framework 2.3.x。当我尝试使用正则表达式通过 declare deadbolt Patterns 访问控制器时。我收到 Not-found 错误。 According to this sample,可以在我们的应用程序中使用带有 Pattern 的正则表达式。但是当我声明一个正则表达式时,我无法使用它。我的代码如下所示:

def pattern_one = Pattern("CH{4,}", PatternType.REGEX, new MyDeadboltHandler) {} // NOT ACCESSED 

def pattern_one = Pattern("CH*", PatternType.REGEX, new MyDeadboltHandler) {  // NOT ACCESSED

def pattern_one = Pattern("CHANNEL", PatternType.REGEX, new MyDeadboltHandler) { // ACCESSED SUCCESSFULLY

如果你想要 CH 之后的东西(不仅仅是 Hs),你需要使用 CH.*CH.{4,}. 表示任何字符,就像在任何其他正则表达式中一样。

正则表达式不是通配符。如果 * 通配符匹配任意次数,在正则表达式中,您需要使用 .*,其中 . 表示 除换行符之外的任何字符 , 而 * 表示 0 次或更多次.

此外,如果要匹配以CH开头的字符串中包含单词的整个字符串,可以使用单词边界,\b\bCH.*.

如果要指定字符串必须以CH开头且匹配整个字符串,可以使用^CH.*.