Регулярное выражение для соответствия одной или нескольким обратным слешам и знакам + - PullRequest
0 голосов
/ 20 мая 2011

Я пишу регулярное выражение для соответствия одному или нескольким \ и одному или нескольким + знакам. Это то, что я имею до сих пор, и это не выглядит правильным

/\\+\++/

my $test = "\+";

if( $test =~ /\\+\++/)
{

    print "yes";

}

Я пробовал этот код, и он не работает

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

выглядит хорошо для меня:

perl -Dr -e '"\\+++" =~ /\\+\++/'
Compiling REx "\\+\++"
rarest char + at 1
rarest char \ at 0
Final program:
   1: PLUS (4)
   2:   EXACT <\\> (0)
   4: PLUS (7)
   5:   EXACT <+> (0)
   7: END (0)
anchored "\" at 0 floating "\+" at 0..2147483647 (checking floating) plus minlen 2
Omitting $` $& $' support.

EXECUTING...

Guessing start of match in sv for REx "\\+\++" against "\+++"
Found floating substr "\+" at offset 0...
Found anchored substr "\" at offset 0...
Guessed: match at offset 0
Matching REx "\\+\++" against "\+++"
   0 <> <\+++>               |  1:PLUS(4)
                                  EXACT <\\> can match 1 times out of 2147483647...
   1 <\> <+++>               |  4:  PLUS(7)
                                    EXACT <+> can match 3 times out of 2147483647...
   4 <\+++> <>               |  7:    END(0)
Match successful!
Freeing REx: "\\+\++"
0 голосов
/ 20 мая 2011

С вашим выражением все в порядке, хотя вы можете добавить якоря, если вся строка должна состоять только из символов \ & +.

/^\\+\++$/g

Вы можете увидеть тест и примерв http://refiddle.com/18e

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...