1

で使用Deadbolt2していplay-framework 2.3.xます。Patterns正規表現を使用してdeclare deadboltでコントローラーにアクセスしようとしているとき。エラーが発生して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

の後に何か ( s だけでなく)が必要な場合はCH.*、 orを使用する必要があります。は、他の正規表現と同様に、任意の文字を意味します。CH.{4,}HCH.

于 2015-05-02T15:55:38.317 に答える