Expresión regular de Java para encontrar cadenas específicas

Tengo un archivo con una cadena larga y me gustaría dividirlo por elemento específico, es decir

String line = "{{[Metadata{"this, is my first, string"}]},{[Metadata{"this, is my second, string"}]},{[Metadata{"this, is my third string"}]}}"

String[] tab = line.split("(?=\\bMetadata\\b)");

Entonces, cuando itere mi pestaña, obtendré líneas que comienzan desde la palabra: "Metadata"pero me gustaría que las líneas comiencen desde:

"{[Metadata"

He intentado algo como:

 String[] tab = line.split("(?=\\b{[Metadata\\b)");

Pero no funciona. ¿Alguien puede ayudarme a hacer eso, por favor?

Respuesta 1

Puedes utilizar

(?=\{\[Metadata\b)

Vea una demostración en regex101.com .


Tenga en cuenta que las barras invertidas deben escaparse Javapara que se convierta

(?=\\{\\[Metadata\\b)
Respuesta: 2

Escribí dos pequeños programas java: un cliente TCP que envía muchas líneas de datos desde un archivo txt, y un servidor TCP que acepta la conexión y recibe línea por línea. Funciona, pero el servidor recibe todo ...

Me gustaría entender cómo funciona la función de línea de tiempo de Etherpad. Si no conoce el software etherpad, aquí hay una implementación del mismo: http://piratepad.net/ Haga algunas ediciones, escriba algo, haga ...

El programa que estoy tratando de construir, consume archivos en un recurso compartido de archivos de Windows usando Camel 2.18.5 y otros programas ocasionalmente agregan / modifican / eliminan archivos en la carpeta compartida. Construyendo una ruta de prueba simple ...

Tengo que descargar muchas páginas web y voy a usar HttpURLConnection para hacerlo porque es muy conveniente. Sin embargo, no quiero usar descargas basadas en hilos. Deseo usar async ...