2

Perl は条件付き正規表現をサポートしていますか?

(?(condition)true-pattern|false-pattern)

つまり、条件が true の場合は true パターンとの一致を試み、それ以外の場合は false パターンとの一致を試みます

Perl が条件付き正規表現をサポートしているのなら、なぜこのコードは出力されなかったの1でしょうか?

use strict;
use warnings;

$_ = 'AB';

if ( /(?(A)B|C)/ ) {
  print 1;
}
4

2 に答える 2

6

Perlはをサポートしていますconditional patterns

正規表現が一致しないだけでなく、次の構文エラーがスローされます。

Unknown switch condition (?(A) in regex; marked by <-- HERE in m/(?( <-- HERE A)B|C)/

これAは、が有効な条件ではないためです。

于 2012-12-30T15:40:55.853 に答える