Что нового

[Данные, строки] Парсер строк между символами

ANDYANDREY

Новичок
Сообщения
20
Репутация
0
Необходимо сделать парсинг слов из txt и вывод их так же в txt документ, которые находятся за разными знаками, например ;angry;opera;youtube; слова нужно парсить между ;;, бывает и {}, [], :: и т.д, т.к. информации бывает много, хотелось бы упростить задачу.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Возможно, но не совсем ясно, как Вы себе это представляете . Есть конечный набор символов между которыми нужно парсить (все работают в данный момент) или Вы хотите указать для текущего документа конкретный символ... лучше дайте пример и опишите что Вы хотите получить в итоге.
Ваша задача решается тремя строками :
1 - чтение файла
2 - применение регулярного выражения с сохранением результата в массив
3 - запись массива в файл результата
 
Автор
A

ANDYANDREY

Новичок
Сообщения
20
Репутация
0
Например:
text.txt
Код:
[email protected]  love;quwest;vape;quwest;
[email protected]  love;quwest;vape;quwest;
[email protected]  love;quwest;love;quwest;
[email protected]  love;quwest;vape;quwest;
[email protected]  love;quwest;vape;quwest;
[email protected]  love;quwest;vape;quwest;
[email protected]  love;quwest;vape;quwest;

Спарсить нужно начиная с love, где вначале не стоит знак ; если это возможно, и далее слова между ;;
А то есть должно получиться выходной файл в txt, такой
Код:
love
quwest
vape
quwest

Можно сделать, что бы одинаковые парсило это не проблема
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Так ?
Код:
#include <file.au3>
$TextFile = @ScriptDir & '\text.txt'
$ResultFile = @ScriptDir & '\result.txt'
$text = FileRead($TextFile)
$aResult = StringRegExp($text, '(\w+)(?:;)', 3)
_FileWriteFromArray($ResultFile, $aResult)
Или в таком варианте - будут исключены повторяющиеся значения:
Код:
#include <array.au3>
#include <file.au3>
$TextFile = @ScriptDir & '\text.txt'
$ResultFile = @ScriptDir & '\result.txt'
$text = FileRead($TextFile)
$aResult = StringRegExp($text, '(\w+)(?:;)', 3)
$aResult = _ArrayUnique($aResult, Default, Default, Default, 0)
_FileWriteFromArray($ResultFile, $aResult)
 
Автор
A

ANDYANDREY

Новичок
Сообщения
20
Репутация
0
ra4o сказал(а):
Так ?
Код:
#include <file.au3>
$TextFile = @ScriptDir & '\text.txt'
$ResultFile = @ScriptDir & '\result.txt'
$text = FileRead($TextFile)
$aResult = StringRegExp($text, '(\w+)(?:;)', 3)
_FileWriteFromArray($ResultFile, $aResult)
Или в таком варианте - будут исключены повторяющиеся значения:
Код:
#include <array.au3>
#include <file.au3>
$TextFile = @ScriptDir & '\text.txt'
$ResultFile = @ScriptDir & '\result.txt'
$text = FileRead($TextFile)
$aResult = StringRegExp($text, '(\w+)(?:;)', 3)
$aResult = _ArrayUnique($aResult, Default, Default, Default, 0)
_FileWriteFromArray($ResultFile, $aResult)

Да, спасибо, то что нужно :smile:
 
Верх