Что нового

проверка валидности текста, удаление нечитабельных символов

running-frag

why me?
Сообщения
441
Репутация
60
вопрос простой, возможно даже такое решение уже есть (тогда плз дайти линку)
Есть массив
Код:
$_array[0] = 3
$_array[1] = "~"
$_array[2] = "9"
$_array[3] = "*"

задача пробежаться по нему и проверить каждый символ, если символ "нечитабельных" ну т.е. не a-zA-Z0-9 удалить данный элемент
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Работает, только не формирует новый массив. Не попадающие под паттерн элементы массива будут заменены на пустую строку.
Код:
#include <array.au3>
Dim $_array[4]
$_array[0] = 3
$_array[1] = "~"
$_array[2] = "9ffdF$%-33"
$_array[3] = "*"

For $i=0 To 3
	$_array[$i]=StringRegExpReplace($_array[$i],'[^a-zA-Z0-9]',"")
Next
_ArrayDisplay($_array)
 
Автор
R

running-frag

why me?
Сообщения
441
Репутация
60
мне вот так будет будет наглядней

Код:
#include <Array.au3>
Dim $_arr[10]

$_arr[0] = 5
$_arr[1] = "~"
$_arr[2] = "†"
$_arr[3] = "a"
$_arr[4] = "B"
$_arr[5] = "C"

For $i = 0 To $_arr[0]
	$_result = StringRegExp ($_arr[$i], "[a-zA-Z0-9]", 0)
	
	ConsoleWrite ($i &". - ")
	
    If $_result Then
		ConsoleWrite (" well done"&@CR)
	Else
		ConsoleWrite (" fail done"&@CR)
	EndIf
	
Next
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
running-frag,
Можно так попробовать.
Код:
#include <Array.au3>

$sText = ''
For $i = 1 To 100
	$sText &= Chr(Random(33, 126, 1))
Next
ConsoleWrite($sText & @LF)

$aText = StringSplit($sText, '')
$sText = ''
_ArrayDisplay($aText, 'Before')

For $i = 1 To $aText[0] ;Or For $i = 0 To UBound($aText) - 1
	$sText &= $aText[$i]
Next

$sText = StringRegExpReplace($sText, '(?i)[^a-z\d]', '')
ConsoleWrite($sText & @LF)
$aText = StringSplit($sText, '')
_ArrayDisplay($aText, 'After')
 
Верх