1
Perl / помогите придумать регулярное выражение
« : 03 Июня 2008, 13:35:23 »
задача следующая: разделить разряды ЦЕЛОГО числа запятыми слева направо. всё должно быть оформлено в виде s/regexp/.../g. при этом числа могут быть разделены точками
у меня получается только так:
$src =~s/((?:\\D+\\.)|(?:\\s\\d*?))(\\d\\d\\d)(?=(\\d+\\.\\D+)|(\\d+\\s))/\\1\\2,/g;
при этом
исходная строка: ...15785456451 556 88 4 fghd454444 4210101.98752 7895.3545135 984785848 156518..4856..
результат: ...157,85456451 556 88 4 fghd454444 4210101.98752 7895.3545135 984,785848 156,518..485,6..
либо так:
$src =~s/(?
исходная строка: ...15785 556 88 4 fghd454444 4210101.98752 7895.3545135 984785848 156518..4856..
результат: ...157,85 556 88 4 fghd454,444 4210101.9875,2 7895.3545,135 984,785,848 156,518..485,6..
у меня получается только так:
$src =~s/((?:\\D+\\.)|(?:\\s\\d*?))(\\d\\d\\d)(?=(\\d+\\.\\D+)|(\\d+\\s))/\\1\\2,/g;
при этом
исходная строка: ...15785456451 556 88 4 fghd454444 4210101.98752 7895.3545135 984785848 156518..4856..
результат: ...157,85456451 556 88 4 fghd454444 4210101.98752 7895.3545135 984,785848 156,518..485,6..
либо так:
$src =~s/(?
исходная строка: ...15785 556 88 4 fghd454444 4210101.98752 7895.3545135 984785848 156518..4856..
результат: ...157,85 556 88 4 fghd454,444 4210101.9875,2 7895.3545,135 984,785,848 156,518..485,6..