Что нового

Вытащить из строки только цифры

valdur2000

Знающий
Сообщения
155
Репутация
7
Здравствуйте, подскажите пожалуйста, как из любой строки выбрать только цифры?
например: "12 а / 0,3 оставить только 1203?
так же должны убиратся и знаки форматирования, табуляции и т.д.

Опубликовал вопрос и внизу увидел ответ:
Код:
$r = StringRegExpReplace("0a23", '[^\d]', '')


Спасибо.
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
msgbox(0,'',StringRegExpReplace('"12 а / 0,3','[^0-9]',''))
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Все видимые знаки убрались, но!
последним символом идет то ли знак табуляции, то ли перевод каретки(строки) и его никак не убрать этим выражением... может его можно как-то дополнить?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
valdur2000 [?]
последним символом идет то ли знак табуляции, то ли перевод каретки(строки) и его никак не убрать этим выражением
Пример?
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Получится наверное только объяснить..
Я беру переменную из ячейки Excel (форматированием ячейки не смог добиться результата)
строка подобного типа:
Код:
MsgBox(0,0,"'" & $a & "'")

показывает так:
Код:
'12345
'
т.е. второй знак ' перенесен на новую строку. знаки ' я вставил специально, что бы видеть перенос строки визуально.
может можно переделать символы переменной в другой формат, тогда этот перенос будет видно...

Если скопировать значение ячейки и вставить в Блокнот, то получается вот что:
Код:
"12345"
хотя, кавычек в excel нету.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
valdur2000,
Я не понял Вашего примера.
Код:
$sStr = @CRLF & @TAB & 'f1g2#3$4%5^6&7*8(9)0lkjhyчвасмит' & @CR & @CR & @LF & @LF & @TAB & @TAB & @CRLF & @CRLF
ConsoleWrite('before: >' & $sStr & '<' & @LF)
$sStr = StringRegExpReplace($sStr, '[^\d]', '')
ConsoleWrite('after: >' & $sStr & '<' & @LF)



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

valdur2000 [?]
Я беру переменную из ячейки Excel (форматированием ячейки не смог добиться результата)
...
Если скопировать значение ячейки
Создайте тему про Excel, приложите к нему файл-пример, объясните, что Вы хотите сделать, и покажите, как Вы это делайте сейчас.
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Код:
#include <Excel.au3>
$File =  FileOpenDialog("","C:\AutoIt","Excel(*.xlsx)")
$oExcel = _ExcelBookOpen($File,0)
_ExcelSheetActivate($oExcel,1)
$a = _ExcelReadCell($oExcel,1,1)
IsNumber($a)
MsgBox(0,"error",@error & @CRLF & "'" & $a & "'")


как будет в MsgBox'e единичка, значит остались одни цифры...
в аттаче xlsx с таблицей, в ней одна единственная ячейка А1
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
valdur2000,
madmasles [?]
Создайте тему про Excel

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Открыл тему в новичках. эту соответственно закрываю.
 
Верх