Автор Тема: [RegExp] Получить ID и имя  (Прочитано 358 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 209
  • Репутация: 19
  • Пол: Мужской
    • Награды
[RegExp] Получить ID и имя
« Создано: Январь 27, 2019, 07:51:00 »
Помогите распарсить файл.
Должен получиться двухмерный массив вида:

ID | name

Но я в регулярках не силен, а поиск по такой схеме не работает:
Код: AutoIt [Выделить]
#include <Array.au3>
Local $temp

$hFile = FileOpen(@ScriptDir & '\temp.txt', 0)
If @error Then MsgBox(0, '', '')

;371027

$sChars = FileRead($hFile)


For $i = 0 To 371027
    $typeid = StringRegExp($sChars, '' & $i & ':(.*?)'&$i+1, 3)

    If Not @error Then
        _ArrayDisplay($typeid, $i)

    EndIf
Next
 



Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Русское сообщество AutoIt

[RegExp] Получить ID и имя
« Отправлен: Январь 27, 2019, 07:51:00 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2854
  • Репутация: 479
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [RegExp] Получить ID и имя
« Ответ #1, Отправлен: Январь 27, 2019, 08:48:49 »
а что является name и ID .
пример?
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 209

  • Автор темы
  • Репутация: 19
  • Пол: Мужской
    • Награды
Re: [RegExp] Получить ID и имя
« Ответ #2, Отправлен: Январь 27, 2019, 10:32:22 »
будут значения
9413|280mm Carbine Howitzer I
9415|280mm Gallium Cannon
9417|280mm Prototype Siege Cannon
9419|720mm 'Probe' Artillery I
9421|720mm Cordite Howitzer I

и т.д. Файл на самом деле оч. большой около 70мб. 1 300 000 строчек.

Помечен как лучший ответ пользователем mr.Gbabak Отправлен Январь 27, 2019, 12:04:10

Оффлайн sngr [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 911
  • Репутация: 367
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: [RegExp] Получить ID и имя
« Ответ #3, Отправлен: Январь 27, 2019, 11:45:36 »
Код: AutoIt [Выделить]
#include 'array.au3'
$file=FileRead(@ScriptDir&'\temp.txt')
$str=StringRegExp($file,'(?ms)^(\d+):.*?name:[^:]+de:([^\r\n]+)',3)
_ArrayDisplay($str)


Русское сообщество AutoIt

Re: [RegExp] Получить ID и имя
« Ответ #3 Отправлен: Январь 27, 2019, 11:45:36 »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 209

  • Автор темы
  • Репутация: 19
  • Пол: Мужской
    • Награды
Re: [RegExp] Получить ID и имя
« Ответ #4, Отправлен: Январь 27, 2019, 12:04:03 »
то что надо, спасибо!))
Ни как не могу освоить эти регулярки:-(

Русское сообщество AutoIt

Re: [RegExp] Получить ID и имя
« Ответ #4 Отправлен: Январь 27, 2019, 12:04:03 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
7 Ответов
12117 Просмотров
Последний ответ Февраль 17, 2011, 19:23:02
от Yashied
3 Ответов
3064 Просмотров
Последний ответ Июнь 28, 2011, 23:29:02
от axlwor
4 Ответов
3597 Просмотров
Последний ответ Февраль 04, 2012, 11:08:38
от StarEdik
1 Ответов
1904 Просмотров
Последний ответ Февраль 14, 2013, 12:38:46
от madmasles
6 Ответов
3434 Просмотров
Последний ответ Апрель 10, 2013, 14:11:56
от gregaz
3 Ответов
1754 Просмотров
Последний ответ Октябрь 30, 2014, 11:30:02
от gloss
0 Ответов
738 Просмотров
Последний ответ Октябрь 28, 2014, 14:23:47
от madmasles
4 Ответов
1929 Просмотров
Последний ответ Август 15, 2015, 11:36:10
от inx
1 Ответов
880 Просмотров
Последний ответ Октябрь 14, 2015, 12:02:59
от InnI
2 Ответов
740 Просмотров
Последний ответ Август 10, 2017, 08:40:44
от Атос