1

我正在Deadbolt2使用play-framework 2.3.x. 当我尝试Patterns使用正则表达式声明死螺栓来访问控制器时。我收到Not-found错误。根据这个示例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
4

2 回答 2

4

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

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

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

于 2015-05-02T16:04:48.963 回答
2

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

于 2015-05-02T15:55:38.317 回答