Regex 带死锁2的Playframework:模式正则表达式不匹配
我正在使用Regex 带死锁2的Playframework:模式正则表达式不匹配,regex,scala,playframework-2.3,deadbolt-2,Regex,Scala,Playframework 2.3,Deadbolt 2,我正在使用Deadbolt2和play framework 2.3.x。当我试图使用正则表达式通过declare deadbolt模式访问控制器时。我发现未找到错误,在我们的应用程序中,可以使用带有模式的正则表达式。但是当我声明正则表达式时,我不能使用它。我的代码如下所示: def pattern_one = Pattern("CH{4,}", PatternType.REGEX, new MyDeadboltHandler) {} // NOT ACCESSED def pattern_o
Deadbolt2
和play framework 2.3.x
。当我试图使用正则表达式通过declare deadbolt模式访问控制器时。我发现未找到
错误,在我们的应用程序中,可以使用带有模式的正则表达式。但是当我声明正则表达式时,我不能使用它。我的代码如下所示:
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,}
。
表示任何字符,就像在任何其他正则表达式中一样。如果您想要在CH
之后添加内容(不仅仅是H
s),则需要使用CH.
或CH.{4,}
。
表示任何字符,就像在任何其他正则表达式中一样。正则表达式不是通配符。如果*
通配符与任何字符匹配任意次数,在正则表达式中,您需要使用*
,其中
表示除换行符以外的任何字符,*
表示0次或更多次
此外,如果要匹配以CH
开头的字符串中包含单词的整个字符串,可以使用单词边界\\b
:\\bCH.
如果要指定字符串必须以CH
开头并匹配整个字符串,可以使用^CH.*
正则表达式不是通配符。如果*
通配符与任何字符匹配任意次数,在正则表达式中,您需要使用*
,其中
表示除换行符以外的任何字符,*
表示0次或更多次
此外,如果要匹配以CH
开头的字符串中包含单词的整个字符串,可以使用单词边界\\b
:\\bCH.
如果要指定字符串必须以CH
开头并匹配整个字符串,可以使用^CH.
您是指类似CH.{4,}
或CH.
的模式吗?(注意我表达式中的额外
)为什么要匹配类似chhhh
的内容?您正在处理一个化学应用程序吗?它可能是正则表达式CH.{4,}
和CH.
中缺少的
?@GáborBakos它只是为示例应用程序创建的,为了测试正则表达式如何与死锁一起工作,我确信它们的工作方式与其他程序类似。我试图表达的是:不清楚你想要实现什么。@Gregoraýman这是我的工作。我的CH.*
和CH.{4,}
运行成功。但是我仍然不明白,为什么我们需要正则表达式
?你是说像CH.{4,}
或CH.
这样的模式吗?(注意我表达式中的额外
)为什么要匹配类似chhhh
的内容?您正在处理一个化学应用程序吗?它可能是正则表达式CH.{4,}
和CH.
中缺少的
?@GáborBakos它只是为示例应用程序创建的,为了测试正则表达式如何与死锁一起工作,我确信它们的工作方式与其他程序类似。我试图表达的是:不清楚你想要实现什么。@Gregoraýman这是我的工作。我的CH.*
和CH.{4,}
运行成功。但我仍然不明白,为什么我们需要正则表达式
?这个答案已经由@Gregor Raýman在上面的评论中给出了。这个答案已经由我在上面的评论中给出:“CH.{4,}
或CH.
?(注意我表达式中额外的
”(这是更详细的一点。)抱歉,Gábor Bakos,这是我的错误。@Gregor Raýman在上面的评论中已经给出了这个答案。我在上面的评论中已经给出了这个答案:“CH.{4,}
或CH.
?(注意我表达中额外的
。”(这更详细一点)对不起,Gábor Bakos,这是我的错