Regex buscar y reemplazar todas las palabras
Frecuentes
Visto 813 veces
0
Reg-ex siempre me confunde, además de que la sintaxis súper simple es difícil de buscar en Google. Estoy usando reg-ex aquí estrictamente con buscar y reemplazar sin necesidad de ningún idioma para hacer algunos reg-ex solo quiero ahorrar tiempo editando una gran cantidad de datos :)
Tengo un archivo json enorme, estos son solo dos datos, pero es bueno para este ejemplo.
[
{
name: 'John',
team: 'Wolves',
team_id: 1,
number: 24
},
{
name: 'Kevin',
team: 'Rockets',
team_id: 1,
number: 6
}
]
Dentro de mi json, necesito poner comillas dobles sobre casi todos los pares clave: valor, los números son opcionales.
Necesito deshacerme de las comillas simples, luego poner comillas dobles sobre todo.
Resultado final luciendo así.
[
{
"name": "John",
"team": "Wolves",
"team_id": "1",
"number": "24"
},
{
"name": "Kevin",
"team": "Rockets",
"team_id": "1",
"number": "6"
}
]
Una vez más, los números son opcionales, pero sería bueno saber cómo citarlos dos veces.
Extra: recuerdo vagamente haber hecho algo como esto hace un tiempo, pero no puedo encontrar dónde encontré esa información. Esta sería una buena referencia. ¿Alguien tiene buenos enlaces a los conceptos básicos de expresiones regulares? Solo quiero ahorrar tiempo cuando trabajo con una gran cantidad de datos. Gracias.
2 Respuestas
1
Intente algo parecido a esto:
(\w+):\s*('?)([^']+?)\2(?=[\n,])
y reemplazar por "\1": "\3"
Demostración: http://regex101.com/r/pX9xX6
Editar: recién probado en Sublime, parece funcionar bien.
Respondido el 03 de diciembre de 13 a las 13:12
Gracias, esto se ve un poco más claro, creo, todavía se ve confuso, déjame probar esto también, ¡gracias por la demostración! - Michael Joseph Aubry
Realmente me gusta ese enlace que explica la expresión regular ... Esto es genial 1+ tal vez pueda aprender un poco, pero aquí. - Michael Joseph Aubry
Marcó el sitio como favorito, apuesto a que será útil. Funcionó muy bien en el sitio, no pude hacerlo funcionar en sublime, probablemente algo que estaba haciendo. Acabo de pegar mi json en ese sitio y funcionó muy bien. - Michael Joseph Aubry
Me alegro de que haya funcionado. Si desea obtener más información, use el depurador para ver cómo funciona la expresión regular: regex101.com/r/rJ5qL5/#depurador -- Lo hice funcionar en sublime por cierto. - Firas Dib
Gracias, sí, la expresión regular parece confusa, pero apuesto a que no es tan mala, es bastante útil, así que gracias. - Michael Joseph Aubry
1
Bueno, la sintaxis exacta depende de la herramienta. si estuvieras usando vim
, por ejemplo:
:%s/'\([^']*\)'/"\1"/g
y
:%s/^\([ ^I]*\)\([^ ^I]*\):/\1"\2":/
probablemente haría el truco, aunque le gustaría hacer una verificación manual de las cotizaciones citadas.
Respondido el 03 de diciembre de 13 a las 13:12
Genial, gracias, la expresión regular es poderosa pero parece tan confusa, creo que hay una cara en ese código que está sonriendo. Déjame intentarlo, apuesto a que funciona. - Michael Joseph Aubry
No pude hacerlo funcionar, probablemente no di suficientes especificaciones. Seguiré intentándolo a través de 1+ porque apuesto a que esto funciona, simplemente haciendo algo tonto de mi parte. - Michael Joseph Aubry
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas regex replace or haz tu propia pregunta.
Debe etiquetar el idioma para una mayor exposición y para que los usuarios sepan qué idioma está utilizando. - Paul Samsotha
Etiqueté buscar y reemplazar, en realidad lo cambió para que yo lo reemplace, pero ¿a qué idioma te refieres al json o al javascript que estoy usando? Esos realmente no importan, ¿verdad? La mayoría de los editores de texto vienen con buscar y reemplazar en ellos con una opción reg-ex que permite una edición de código más fácil. Ahí es donde usaré el reg-ex - Michael Joseph Aubry
¿Usar texto sublime si eso importa? Solo quiero una sintaxis de búsqueda simple, y luego un reemplazo simple con sintaxis. He usado una sintaxis simple antes, pero es tan simple que es difícil de encontrar jajaja. - Michael Joseph Aubry
javascript es una buena etiqueta para la exposición, si eso es lo que está usando. - Paul Samsotha
para TODAS sus necesidades de expresiones regulares: visibone.com/regular-expressions - RozzA