2

I am working on a hubot slack integration, but have hit a bit of a brick wall. I am trying to get hubot to respond to this regex

(\d{4}\-){3}\d{4}

But for some reason it will not work.

Code Snippet

robot.respond /(\d{4}\-){3}\d{4}/i, (msg) ->
    msg.send "Words, Words, Words"

Any help would be greatly appreciated.

Regards, Austin

4

1 に答える 1

2

Hubot では、respond正規表現はanchoredであるため、文字列全体が一致する必要があります。

したがって、正規表現の両端に.*またはを追加する必要があります。また、単語全体に一致するよう[\s\S]*に単語境界を追加することをお勧めします。\b

したがって、入力に改行記号がある場合は、

/[\s\S]*\b(\d{4}\-){3}\d{4}\b[\s\S]*/

改行記号がない場合は、そのまま使用してください

/.*\b(\d{4}\-){3}\d{4}\b.*/

パターンに文字がないため、大文字と小文字を区別しない修飾子はここでは冗長であることに注意してください。

于 2015-11-23T16:44:56.207 に答える