Deadbolt 2 的 Playframework:模式正则表达式不匹配
Playframework with Deadbolt 2: Pattern regular expression not match
我正在使用 Deadbolt2
和 play-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
之后的东西(不仅仅是 H
s),你需要使用 CH.*
或 CH.{4,}
。 .
表示任何字符,就像在任何其他正则表达式中一样。
正则表达式不是通配符。如果 *
通配符匹配任意次数,在正则表达式中,您需要使用 .*
,其中 .
表示 除换行符之外的任何字符 , 而 *
表示 0 次或更多次.
此外,如果要匹配以CH
开头的字符串中包含单词的整个字符串,可以使用单词边界,\b
:\bCH.*
.
如果要指定字符串必须以CH
开头且匹配整个字符串,可以使用^CH.*
.
我正在使用 Deadbolt2
和 play-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
之后的东西(不仅仅是 H
s),你需要使用 CH.*
或 CH.{4,}
。 .
表示任何字符,就像在任何其他正则表达式中一样。
正则表达式不是通配符。如果 *
通配符匹配任意次数,在正则表达式中,您需要使用 .*
,其中 .
表示 除换行符之外的任何字符 , 而 *
表示 0 次或更多次.
此外,如果要匹配以CH
开头的字符串中包含单词的整个字符串,可以使用单词边界,\b
:\bCH.*
.
如果要指定字符串必须以CH
开头且匹配整个字符串,可以使用^CH.*
.