У меня есть такой текстовый файл
...
(Some text to introduce the list)
...
UserInfo
User:"user"
Email:"user@example.com"
Phone:"12341234"
OtherItem:"123"
UserInfo
User:"user"
Email:"user@example.com"
Phone:"12341234"
OtherItemA:"123"
OtherItemB:"123"
UserInfo
User:"user"
Email:"user@example.com"
Phone:"12341234"
OtherItemA:"123"
OtherItemB:"123"
-OtherSubItemC:"123"
-OtherSubItemD:"123"
UserInfo
User:"user"
Email:"user@example.com"
Phone:"12341234"
UserInfo
User:"user"
Email:"user@example.com"
Phone:"12341234"
...
...
...
Это список, в котором хранится информация о пользователе Текстовый файл
Теперь моя задача - проанализировать эти данные в файл json или csv, который может обрабатываться программой и отображать пользователя в таблице.
Мое решение использует javascript для выполнения:
fetch("./list.txt").then(async i=>{
window.myString = await i.text() // get string by text
list = myString.match(/"(.*)"/g)
})
Теперь я могу получить массив вроде этого:
["user","user@example.com"......]
И я обнаружил, что не все пользователи имеют одинаковое количество информации. поэтому я не могу просто разделить массив, чтобы стать массивом пользователей.
Но, к счастью, у каждого пользователя есть UserInfo перед абзацем и UserInfo в другом месте.
Итак, у меня есть идея, которая использует регулярное выражение или другую функцию, чтобы получить текст между UserInfo , например:
[
' User:"user"
Email:"user@example.com"
Phone:"12341234"
OtherItem:"123"',
'User:"user"
Email:"user@example.com"
Phone:"12341234"
OtherItemA:"123"
OtherItemB:"123"',
]
И я буду oop строку элемента для создать объект.
Но я не знаю, как получить абзац с помощью регулярного выражения.
Я пробовал что-то вроде /UserInfo(.*)UserInfo/g
, но все они не соответствовали.
Кто угодно может мне помочь?