Что нового

[Данные, строки] Получение неизвестного разделителя из строки

Ralf479824

Новичок
Сообщения
13
Репутация
0
Здравствуйте ! Нужна помощь все кто разбирается в Autoit!
Задача состоит в том чтобы получить разделитель (который может быть любой) из строки вида : aafffау33erewref:rth6j6j5 .
Тоесть в строке есть разделитель который нужно получить .
Как это сделать ?
 
A

Alofa

Гость
Ralf479824 сказал(а):
... aafffау33erewref:rth6j6j5 .
Тоесть в строке есть разделитель который нужно получить .
Этой информации мало.
1) Текст многострочный?
2) Текст всегда будет состоять только из цифр, букв (кстати, какого алфавита) и искомого разделителя? Или еще какие знаки могут быть?
 
Автор
R

Ralf479824

Новичок
Сообщения
13
Репутация
0
текст всегда будет состоять из букв и цифр и может иногда с точек , алфавит русский и английский
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Ralf479824 [?]
разделитель (который может быть любой) из строки вида : aafffау33erewref:rth6j6j5
Что в этой строке является разделителем?
 
Автор
R

Ralf479824

Новичок
Сообщения
13
Репутация
0
Garrett сказал(а):
Ralf479824 [?]
разделитель (который может быть любой) из строки вида : aafffау33erewref:rth6j6j5
Что в этой строке является разделителем?
В строке может быть разделителем все символы вида : ? * ; = - ,
Только эти символы могут там быть ,буквы и цифры не входят в список разделителей
 
A

Alofa

Гость
Код:
$sString = ':aafff:ау33ere.wref:rth6j6j5:Моя СТРока2 : sыЛLpЁ' & @CRLF & 'ere.wref:rth6'

$sOutput = StringRegExpReplace($sString, '[\s\w\.|А-яЁё]', '') ; Регулярные выражения - наука точная. Любой неучтенный знак может привести к неправильному результату
If Not @error Then MsgBox(0, 'Разделитель -->', StringLeft($sOutput, 1))
 
Автор
R

Ralf479824

Новичок
Сообщения
13
Репутация
0
Alofa спасибо тебе большое выручил меня! :laugh: :laugh: :laugh: :laugh: :laugh:


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

Тема закрыта всем спасибо!
 
A

Alofa

Гость
Проверьте ка получше, перед тем как тему закрывать.
Ralf479824 скажите, а зачем это? Не для того ли чтобы далее применить "StringSplit()"
 
Автор
R

Ralf479824

Новичок
Сообщения
13
Репутация
0
Да именно для того чтобы применить StringSplit
 
A

Alofa

Гость
Тогда вам лучше сделать так:
Код:
#include <Array.au3>
$sString = 'aafff:ау33ere.wref:rth6j6j5:Моя СТРока2 : sыЛLpЁ' & @CRLF & 'ere.wref:rth6'
$sOutput = StringRegExpReplace($sString, '[^\s\w\.|А-яЁё]', '|') ; Здесь вы заменяете НЕ известный разделитель на нужный вам
If Not @error Then $asArray = StringSplit ($sOutput, '|')
_ArrayDisplay($asArray)


А еще лучше сразу так:
Код:
#include <Array.au3>
$sString = ':aafff:ау33ere.wref:rth6j6j5:Моя СТРока2 : sыЛLpЁ' & @CRLF & 'ere.wref:rth6'
$asOutput = StringRegExp($sString, '([\s\w\.|А-яЁё]+)', 3)
_ArrayDisplay($asOutput)
 
Автор
R

Ralf479824

Новичок
Сообщения
13
Репутация
0
А что делать если в строке могут присутствовать символы _ - @
Если эти символы присутствуют то разделитель определяется неправильно .
Помогите пожалуйста еще и с этой проблемой :stars:


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

Уже решил свою проблему, всем спасибо ! Тема закрыта.
 
A

Alofa

Гость
Ralf479824 сказал(а):
А что делать если в строке могут присутствовать символы _ - @
Так можно гадать до бесконечности.
Вы лучше подумайте какие знаки НЕ могут присутствовать, т.е. знаки которые могут быть разделителем?
Я незнаю что это за строки и откуда они беруться, но к примеру если это назназвания файлов, то у Windows есть ограничение по допустимым символам в названии --> соответственно эти самые символы и могут быть разделителем --> и вот уже круг сужается.
 
Верх