Что нового

StringRegExpReplace(): Убрать пробелы по краям массива

wisenlucky

Новичок
Сообщения
36
Репутация
0
Добрый день!

Помогите, пожалуйста, решить задачку сабжа.
Код:
#include <Array.au3>

Dim $sValues[5] = [" 10 "," 11","12 "," 13 ","14"]

$aValues = StringRegExpReplace($sValues, '(?m)^[\s]*[\s]*$', '')
ConsoleWrite($aValues&@CRLF)


Во-первых что-то не так с шаблоном. Пробовал разные вариации, за основу взял эту тему.

Во-вторых. Как заставить его работать с массивом?
 

sngr

AutoIT Гуру
Сообщения
1,015
Репутация
411
Задача не имеет решения. StringRegExpReplace это функция для работы со строками.
Код:
 
Автор
W

wisenlucky

Новичок
Сообщения
36
Репутация
0
Задача не имеет решения. StringRegExpReplace это функция для работы со строками.
Я пока не встречал таких задач, которые не имеют решения :smile:
Можно к примеру сделать это с помощью цикла, пройдясь по каждой строке массива.

При помощи
Код:
насколько я понимаю можно заменить символы только зная точное количество символов которые надо заменить.

Подскажите хотя бы шаблон. Если к примеру. нужно заменить значение в строке
Код:
$sValues[0]
 

AZJIO

Меценат
Меценат
Сообщения
2,901
Репутация
1,200
Код:
#include <Array.au3>

Dim $sValues[5] = [" 10 ", " 11", "12 ", " 13 ", "14"]

For $i = 0 To UBound($sValues) - 1
	If StringRegExp($sValues[$i], '\A\s|\s\z') Then $sValues[$i] = StringStripWS($sValues[$i], 3)
Next

$sRes = ''
For $i = 0 To UBound($sValues) - 1
	$sRes &= '|' & $sValues[$i] & '|' & @LF
Next
MsgBox(0, 'Сообщение', $sRes)


Код:
#include <Array.au3>

Dim $sValues[5] = [" 10 ", " 11", "12 ", " 13 ", "14"]

For $i = 0 To UBound($sValues) - 1
	$sValues[$i] = StringStripWS($sValues[$i], 3)
Next

$sRes = ''
For $i = 0 To UBound($sValues) - 1
	$sRes &= '|' & $sValues[$i] & '|' & @LF
Next
MsgBox(0, 'Сообщение', $sRes)
 
Автор
W

wisenlucky

Новичок
Сообщения
36
Репутация
0
Как всё просто, когда уже видишь решение :smile:

Спасибо, AZJIO! :beer:
 
Автор
W

wisenlucky

Новичок
Сообщения
36
Репутация
0
Для этого конкретного случая (целые числа окружены пробелами) можно так:
Иногда встречаются и буквы, но спасибо за идею. Думаю
Код:
Int()
ещё пригодится. ;)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487
AZJIO
А есть ли смысл делать проверку?
 
Верх