Перейти к содержимому

Фото
- - - - -

split/regexp string->array. Java/JS


  • Вы не можете создать новую тему
  • Please log in to reply
5 ответов в этой теме

#1 StrikeR

StrikeR

    бугога

  • Постоялец
  • 798 сообщений
  • Откуда:QLD. Australia

Отправлено 09 апреля 2014 - 10:19

Замучался, помогите плз разобраться, а точнее собрать smile.png
Есть данные String:

text
text
a={
  text1
  text2
}
a={
  text1
  text2
}
a={
  text1
  text2
}
a={
  text1
  text2
}

Хочу разбить их по скобкам {} и внутреннею инф-цию вписать в массив, т.е. на выходе что-то типа somearray=[[text1,text2], [text1,text2]]... как варинат и не массив в массиве, а стринг в массиве somearray=["text1 text2","text1 text2"]

Можно вариант и на яваскрипте, думаю, тоже смогу разобраться, как перекинуть это в джаву. С регулярными выражениями как-то так и не разобрался.
Пока могу сделать тупо split по "a={" ну нужно убирать последнюю скобку. Сдаётся мне, что должен быть вариант по проще.
Кто-то подсказал мне разбить по новой строке "\n" и каждую строчку читать, мол если соответвует { - значит начало записи, если }, то конец. И так до конца.


Сообщение изменено: StrikeR (09 апреля 2014 - 10:19 )

  • 0

#2 Дык

Дык
  • Постоялец
  • 10 897 сообщений
  • Откуда:/dev/null

Отправлено 10 апреля 2014 - 20:47

Раз 10 прочитал - ничего не понял ))

Дай пример input -> output, если не решил свою проблему.


  • 0

Вначале делаю, потом думаю :)


#3 EastHastings

EastHastings

    Титулярный советникъ

  • Постоялец
  • 2 852 сообщений

Отправлено 11 апреля 2014 - 09:15

короче ему нужен regexp, который бы делил стринг на сабстринги каждый раз когда встречаются символы "a={" и при этом вырезал бы из каждого сабстринга правую скобку "}"


  • 1

юноша бледный со взором горящим


#4 StrikeR

StrikeR

    бугога

  • Постоялец
  • 798 сообщений
  • Откуда:QLD. Australia

Отправлено 11 апреля 2014 - 11:25

Akhenaton,EastHastingsвсё правильно объяснил.

 

input:

Lorem ipsum dolor sit amet
consectetur adipiscing elit
a={
   string_data1_1
   string_data1_2
   string_data1_3
}
a={
   string_data2_1
   string_data2_2
   string_data2_3
}
a={
   string_data3_1
   string_data3_2
   string_data3_3
}

output:

[[string_data1_1, string_data1_2, string_data1_3], [string_data2_1, string_data2_2, string_data2_3], [string_data3_1, string_data3_2, string_data3_3]]


  • 0

#5 Дык

Дык
  • Постоялец
  • 10 897 сообщений
  • Откуда:/dev/null

Отправлено 11 апреля 2014 - 17:08

http://rubular.com/r/OzKrrB2Fei  Вот такую регулярку наколбасил. Можешь вбить её в любой язык, который по душе и посмотри - сработает или нет.


  • 2

Вначале делаю, потом думаю :)


#6 StrikeR

StrikeR

    бугога

  • Постоялец
  • 798 сообщений
  • Откуда:QLD. Australia

Отправлено 14 апреля 2014 - 08:58

круть, спасибо. Думаю, что прифигачить проблем не будет.
  • 0