|  | RegExp получить дробное число из строки | ☑ | 
    
        | 0
    
        Boudybuilder   13.08.16✎ 21:07 | 
        Функция ПолучитьЧисло(Строка) Экспорт
 мRegExp.Pattern = "[^0-9\ \%\-]";
 Str1 = СокрЛП(Строка);
 Res = мRegExp.Replace(Str1, "");
 Возврат Число(СокрЛП(Res));
 
 КонецФункции
 
 
 По такой маске из строки "есть, 0.3 млн пикс." получаю только целое число. А нужно получить "0.3" .
 Ну чтобы и точку получало. А то точку пропускает. И еще чтобы полюбому получало точку которая находится между цифрами, тоесть в числе, и не учитывало другие точки в стоке.
 |  | 
    
        | 1
    
        Asmody   13.08.16✎ 21:25 | 
        (0) \d+.\d+     |  | 
    
        | 2
    
        Boudybuilder   13.08.16✎ 21:31 | 
        мRegExp.Pattern = "\d+.\d+";
Ошибку выдает
 |  | 
    
        | 3
    
        Asmody   13.08.16✎ 21:46 | 
        ХЗ чё там у тебя за wRegExp. В pcre нет ошибки.     |  | 
    
        | 4
    
        orefkov   13.08.16✎ 22:46 | 
        (1)
\d+.?\d+
 |  | 
    
        | 5
    
        orefkov   13.08.16✎ 22:47 | 
        \d+.?\d+     |  | 
    
        | 6
    
        orefkov   13.08.16✎ 22:48 | 
        А что движок форума слэш перед точкой съедает? Два раза посетил, и каждый раз пропадает.     |  | 
    
        | 7
    
        Мэс33   13.08.16✎ 23:40 | 
        А если такая строка: "есть, 3 млн пикс" ?     |  | 
    
        | 11
    
        Asmody   13.08.16✎ 23:47 | 
         
\d*\.?\d+
 
 |  | 
    
        | 12
    
        Мэс33   13.08.16✎ 23:50 | 
        (11) не воспринимает строку "вот строка с 3 млн рублей"?
Проверял на
 |  | 
    
        | 13
    
        Мэс33   13.08.16✎ 23:52 | 
        \d+.\d+\d*\.?\d+|\d     |  | 
    
        | 14
    
        Мэс33   13.08.16✎ 23:53 | 
        \d*\.?\d+|\d     |  | 
    
        | 15
    
        Мэс33   13.08.16✎ 23:54 | 
        //эй... \d*\.?\d+|\d     |  | 
    
        | 16
    
        Мэс33   13.08.16✎ 23:54 | 
        Функция ПолучитьЧисло(Строка) Экспорт
 мRegExp.Pattern = "\d*\.?\d+|\d";
 Str1 = СокрЛП(Строка);
 Res = мRegExp.Replace(Str1, "");
 Возврат Число(СокрЛП(Res));
 
 КонецФункции
 |  | 
    
        | 17
    
        Asmody   13.08.16✎ 23:56 | 
        (12) плохо проверял     |  | 
    
        | 18
    
        Boudybuilder   18.08.16✎ 15:25 | 
        О, щас проверю. Заранее спасибо!     |  | 
    
        | 19
    
        Boudybuilder   22.08.16✎ 20:17 | 
        (16) Строка = "150 г"
Res  Возращает - " г"
 
 А не 150
 |  | 
    
        | 20
    
        Boudybuilder   23.08.16✎ 08:48 | 
        (16) Не правильно работает. Помогите.     |  | 
        Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший