Tengo un objeto JSON como una cadena en un área de texto y quiero averiguar en qué líneas están ciertos valores. Me gustaría hacer esto para que una cosa de números de línea que se desplaza con el área de texto hecha de una lista ordenada de valores con el mismo formato tenga el número singular con un estilo diferente cuando se usa un valor JSON real seleccionado (1, 5, - 11). He pensado que puedo encontrar el índice de cadena de la primera aparición del valor, luego contar el número de "\n" hasta que lo alcance, y luego cortar todas las partes antes e incluyendo la parte que acaba de cortar, y intentar otra vez.
Pero mi problema es que cada vez que quiero buscar, digamos, 1, me devuelve todos los números que contienen 1, algunos de los cuales son: "11" (haría este dos veces, que es el problema), "-1 " (encontraría el "1" en "-1"), "-11" (ambos números anteriores combinados), "41" y "15" (encontraría el 1 allí también).
Una lista de lo que normalmente se vería así:
{ "points":[ [-1,-1,-1], [1,-1,-1], [-1,1,-1], [-1,-1,1], [1,1,-1], [1,-1,1], [-1,1,1], [1,1,1] ], "faces":[ [0,1,4,2], [0,1,5,3], [0,2,6,3], [3,5,7,6], [2,4,7,6], [1,4,7,5] ], "colors":[ "red", "green", "blue", "yellow", "black", "white" ], "borders":[ "black", "black", "black", "black", "black", "black" ] }donde selecciono el área de las caras, ya que esa es la parte que quiero usar, y solo esa parte, y encuentro los valores específicos de la misma. Hicieron entrar en los dos dígitos, que es donde comenzaría a ocurrir el problema.
He pensado en una solución para mirar y asegurarme de que haya al menos un "[", un "," o un " " en el lado izquierdo inmediato del valor, y al menos un "]", un ", ", o un " " en el lado derecho del valor . Pero no puedo encontrar una solución fácilmente expandible.
¿Cómo podría manejar eso, con suerte sin tener 9 declaraciones if separadas para verificar cada secuencia y encontrar cuál es la más cercana?