У меня естьКак извлечь номер из строки в Perl?
print $str;
abcd*%1234$sdfsd..#d
Строка всегда будет иметь только один непрерывный отрезок чисел, как 1234
в этом случае. Остальные все будут либо алфавитами, либо другими специальными символами.
Как я могу извлечь номер (1234
в этом случае) и сохранить его обратно в str
?
This page предполагает, что я должен использовать \d
, но как?
Lazer просит номер, а не целое число. Это регулярное выражение будет падать '.',' e', которое может использоваться для формирования float. Также '\ d' не просто' [0-9] ', из-за поддержки Unicode в Perl: цифры в других глифах (например, indian) действительны. Таким образом, ваше регулярное выражение также примет строки, которые не являются числами. – dolmen
@ dolmen Lazer должен быть более конкретным. Его пример не включает десятичные знаки или экспоненты, и я не могу точно знать, хочет ли он включить их или нет. Вы правы в символах сценария unicode, но я отредактирую. –