Что нового

Считать выражение от отметки и в диапозоне строки выписать элементы в массив

MaxHex

Новичок
Сообщения
16
Репутация
0
Здравствуйте, никак не могу разобраться с регулярными выражениями, есть текстовый фаил (во вложении), там меня интересуют строки после "Data MPS", а именно: значение "FID" и название, которое всегда идет после символа ">" и до конца строки. Количество запятых может отличаться (но они всегда есть), значение PID может быть разное, неизменные значения это "L:", всегда после первой запятой будет "FID" и его значение (тоже может быть разное по количеству символов) и всегда после символа ">" будет название (до конца строки). Мне надо это все вытащить в массив и в каждой строке массива что бы было примерно так: "FID 1412 HXRU001R-Russian Inland Waterways v2015.0". Никак не могу понять как составить такое выражение((((
 

Вложения

  • temp.txt
    14.1 КБ · Просмотры: 4

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$file=FileRead("C:\Documents and Settings\12\Рабочий стол\temp.txt")
$str=StringRegExp($file,'FID\s+(\d+)[^\r\n]+>([^\r\n]+)',3)
$aa=''
For $i = 0 To UBound($str)-1 Step 2
	$aa&=$str[$i]&' '&$str[$i+1]& @CRLF
Next
MsgBox(32,'',$aa)
 
A

Alofa

Гость
Код:
#include <Array.au3>
Global $aArray[0]
$sText = FileRead('temp.txt')
If @error Then Exit

StringRegExp($sText, 'Data MPS', 1)
$aArr = StringRegExp($sText, '\R\h*?L:.+(FID\h\d+),[^>]+>(.+)', 3, @extended)
For $i = 0 To UBound($aArr) - 1 Step 2
	ReDim $aArray[$i / 2 + 1]
	$aArray[$i / 2] = $aArr[$i] & ' ' & $aArr[$i + 1]
Next
_ArrayDisplay($aArray)
 
Верх