Что нового

[Данные, строки] Как удалить ненужные символы и преобразовать строку в число?

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Конкретный пример:
Мы имеем текст в буфере.
Код:
бв\%
23,7
Присваеваем его переменной.
Код:
$q = ClipGet()

После этого переменная, видимо, принимает следующее значение.
Код:
$q = "бв\%" & @CRLF & "23,7"

Нужно убрать все сторонние символы и преобразовать строку в число.
Код:
$q = 23.7
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Код:
$a = StringSplit(Clipget(), @CRLF)
ConsoleWrite(StringReplace($a[$a[0]], ",", "."))


Не забываем говорить спасибо ;)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Kalisnik
Так можно попробовать:
Код:
$q = "бв\%" & @CRLF & "23,7"
If StringInStr($q, ",") <> 0 Then
	$q = StringReplace($q, ",", ".")
	$q = StringRegExpReplace($q, "[^.0-9]", "")
Else
	$q = StringRegExpReplace($q, "[^0-9]", "")
EndIf
MsgBox(0, "", $q)
 

XM

Знающий
Сообщения
70
Репутация
8
Код:
If StringInStr($q, ",") <> 0 Then
    $q = StringReplace($q, ",", ".")
    $q = StringRegExpReplace($q, "[^.0-9]", "")
Else
    $q = StringRegExpReplace($q, "[^0-9]", "")
EndIf



Добавлено:
Сообщение автоматически объединено:

В прочем повторил код madmasles' а.
Но это нормально. ;)
 

gregaz

AutoIT Гуру
Сообщения
1 166
Репутация
299
А зачем условие : If ?
Код:
$q = "бв\%" & @CRLF & "23,7"
$iRez=StringRegExpReplace(StringRegExpReplace ( $q, ",", '.'),"[^\d.]", '')
ConsoleWrite($iRez & @LF)
 
Верх