|
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) Не правильно работает. Помогите.
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший