У меня есть строка, подобная этой:
&topic1
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do
eiusmod tempor incididunt ut
&topic2
labore et dolore magna aliqua. Ut enim ad minim
www.example.com/test?id=1&name=abc
veniam, quis nostrud exercitation ullamco lab
&topic3
hello
Каждый раз, когда есть (beginning of line) + & + name + \n
, он должен быть разобран в новый элемент.
Как наиболее естественноспособ разобрать его таким образом с помощью Javascript:
[['topic1', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut'],
['topic2', 'labore et dolore magna aliqua. Ut enim ad minim\nwww.example.com/test?id=1&name=abc\nveniam, quis nostrud exercitation ullamco lab'],
['topic3', 'hello']]
?
У меня есть несколько проблем с этим методом:
var s = "&topic1\nLorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut\n\n&topic2\nlabore et dolore magna aliqua. Ut enim ad minim\nwww.example.com/test?id=1&name=abc\nveniam, quis nostrud exercitation ullamco lab\n\n&topic3\nhello";
s.split('&').forEach(function(elt) { console.log(elt.split('\n')[0], elt.split('\n').slice(1)); });
первый элемент пуст (его можно удалить после, но, может быть, есть более чистый способ?)
если &
находится в середине строки (а не в начале), тогда этот код не работает
Я хотел бы, чтобы текст после заголовка заголовкабыть в одной единственной строке (например, Lorem ipsum dolor sit amet, consectetur adipiscing elit,\nsed do\neiusmod tempor incididunt ut
) и не разбиваться на каждую \n
Как сделать более чистый анализ?