Что нового

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

Math

Новичок
Сообщения
85
Репутация
1
Например, есть переменная $stroka, значение которой - 1A2B3C. Например, в этой строке лишними являются символы A и 2. Как их убрать? Что бы получилась новая переменная, со значением 1B3C.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Math,
Так?
Код:
$sString = '1A2B3C'
$aDel = StringSplit($sString, '')
ConsoleWrite('before: "' & $sString & '"' & @LF)
For $i = 1 To $aDel[0]
	$sString = StringReplace($sString, $aDel[$i], '')
	ConsoleWrite($i & @TAB & 'Del: ' & $aDel[$i] & @TAB & 'Result: "' & $sString & '"' & @LF)
Next
ConsoleWrite('after: "' & $sString & '"' & @LF)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
$sStr = '1A2B3C'
consolewrite('string before: ' & $sStr & @CRLF)
Dim $aA[2] = ['a', '2']
for $i = 0 to ubound($aA) - 1
$sStr = StringReplace ($sStr, $aA[$i], '')
next
consolewrite('string after: ' & $sStr & @CRLF)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
$sString = '1A2B3C'
$sString = StringRegExpReplace($sString, '(.*)A2.*?', '$1')
ConsoleWrite($sString & @CRLF)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Garrett,
Так еще проще. :smile:
Код:
$sString = '1A2B3C'
$sString = StringRegExpReplace($sString, 'A2', '')
ConsoleWrite($sString & @LF)
 
Автор
M

Math

Новичок
Сообщения
85
Репутация
1
С каждым постом всё проще и проще. :smile: Последний вариант мне понравился больше всего, ввиду его простоты, но почему при:

Код:
$sString = '2+4=?'
$sString = StringRegExpReplace($sString, '=?', '')
ConsoleWrite($sString & @LF)
Run ("C:\WINDOWS\notepad.exe")
Sleep(1000)
Send($sString)


в блокнот выдаётся этот ответ? -
Ведь вроде должно быть
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Math
Потому что "?" это служебный символ, и должен быть экранирован "=\?"


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

madmasles [?]
Так еще проще.
smiley.gif
Согласен :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Garrett [?]
Потому что "?" это служебный символ, и должен быть экранирован "=\?"
Или так можно.
Код:
$sString = '2+4=?'
$sString = StringRegExpReplace($sString, '[=?]', '')
ConsoleWrite($sString & @LF)
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Не?

ConsoleWrite(StringReplace('1A2B3C','A2','') & @LF)


axlwor [?]
а если будет '12AB3C'

Действительно, туплю( Сказывается рабочий день :whistle:

UPD:
Вариант madmasles тоже кстати не сработает.
Так вернее:
Код:
$sString = '1Ad2B3C'
$sString = StringRegExpReplace($sString, '[A2]', '')
ConsoleWrite($sString & @LF)
 
Автор
M

Math

Новичок
Сообщения
85
Репутация
1
У себя я сделал так:
Код:
$postLine = ClipGet()
$postLine  = StringRegExpReplace($postLine ,' = \?', '')
ConsoleWrite($postLine  & @LF)

Для моих целей работает идеально. :smile:
 
Верх