Как аккуратно сопоставить «x» и «[x]» с регулярным выражением без повторения?

Я пишу регулярное выражение Perl, чтобы сопоставить обе строки x bla и [x] bla . Одна альтернатива - / (?: x | \ [x \]) bla / . Это нежелательно, потому что в реальном мире x более сложный, поэтому я хочу избежать его повторения.

Лучшее решение на данный момент - поместить x в переменная и предварительная компиляция регулярного выражения:

my $x = 'x';
my $re = qr/(?:$x|\[$x\]) bla/o;

Есть ли более удобное решение? В этом случае удобочитаемость важнее производительности.

7
задан Tim 26 June 2011 в 16:42
поделиться