Теперь я пытаюсь сопоставить некоторые шаблоны из строки, содержащей структурированные массовые запросы эластичного поиска. Вот пример:
index {[event_20191209][event][null], source[{"haha":"haha","jaja":"jaja"}]}, update {[event_20191209][event][xxx], doc_as_upsert[false], doc[index {[null][_doc][null], source[{"haha":"haha","jaja":"jaja"}]}], scripted_upsert[false], detect_noop[true]}, delete {[event_20191208][_doc][sjdos]}, update {[event_20191209][event][yyy], doc_as_upsert[false], upsert[index {[null][_doc][null], source[{"haha":"haha","jaja":"jaja"}]}], scripted_upsert[false], detect_noop[true]}
Моя цель состоит в том, чтобы сопоставить каждый отдельный запрос из строки массовых запросов, то есть получить строки типа:
index {[event_20191209][event][null], source[{"haha":"haha","jaja":"jaja"}]},
update {[event_20191209][event][xxx], doc_as_upsert[false], doc[index {[null][_doc][null], source[{"haha":"haha","jaja":"jaja"}]}], scripted_upsert[false], detect_noop[true]},
delete {[event_20191208][_doc][sjdos]},
update {[event_20191209][event][yyy], doc_as_upsert[false], upsert[index {[null][_doc][null], source[{"haha":"haha","jaja":"jaja"}]}], scripted_upsert[false], detect_noop[true]}
И мое шаблонное выражение [a-z]+\s\{.+?\}[,\w\t\r\n]+?
, который отлично работает на онлайн-тестере регулярных выражений на основе Javascript, как показано ниже: ![enter image description here](https://i.stack.imgur.com/OwGTF.png)
Однако, когда я скопировал это выражение шаблона в мой код Java, вывод было не то, что я ожидал. Это было так: ![enter image description here](https://i.stack.imgur.com/u0TWc.png)
![enter image description here](https://i.stack.imgur.com/eODK9.png)
Итак, я понял, что существуют некоторые различия между Javascript и Java движком регулярных выражений, но я не могу понять, как обновить мое выражение, чтобы оно могло хорошо работать в Java после такого большого количества кодирования и поиска в Google.
Я был бы так благодарен, если бы кто-то мог дать мне какую-то услугу или подсказку для этого.