问题描述
|
我正在写一个正则表达式以匹配一个或多个
\\
和一个或多个+
符号。
这是我到目前为止所拥有的,看起来不正确
/\\\\+\\++/
my $test = \"\\+\";
if( $test =~ /\\\\+\\++/)
{
print \"yes\";
}
香港专业教育学院尝试此代码,它不起作用
解决方法
尽管整个字符串应仅由\\&+字符组成,但您可能希望添加锚点,所以您的表达式没问题。
/^\\\\+\\++$/g
您可以在http://refiddle.com/18e上看到一个测试和示例
,在我看来很好:
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: \"\\\\+\\++\"