Есть ли лучший способ эмулировать \ x интерполяцию? - PullRequest
2 голосов
/ 25 апреля 2011

Мне нужно интерполировать \x{} (широкий шестнадцатеричный символ) в строке так же, как это делает Perl. Двойная оценка в моем коде заставляет меня сомневаться в том, что это лучшее решение.

s/(\\x\{[a-fA-F0-9]+\})/'"'.$1.'"'/ee;
# or
s
 /( \\x \{ [a-fA-F0-9]+ \} )
 / '"' . $1 . '"'
 /xee;

Есть ли более простой и понятный способ?

Например, приведенное выше регулярное выражение заменяет строку "Spa \ x {df}" на "Spaß".

1 Ответ

4 голосов
/ 25 апреля 2011

Используется только один e:

s/\\x\{([A-Fa-f0-9]+)\}/chr hex $1/eg;
...