Foro

Expresión regular en C#

Otros lugares, otras opciones :: Sin clasificar :: Expresión regular en C#

Este hilo ha sido cerrado.
18/03/2012, 07:47
Editado: 18/03/2012, 07:51

Estoy haciendo un programita para hacerme la existencia mas fácil a la hora de crearme XML.

Yo de un .TXT leo string y voy dándole formato para crear los tags del XML, mi problema surge con los paréntesis y no tener ni puta idea de como crear una expresión regular (desistí de aprender luego de gastar 2 horas de mi vida leyendo manuales en Internet).

Me gustaría saber cual seria la expresión regular para eliminar todos los paréntesis y los elementos que esta entre ellos.

Regex.Remplace("Formula(0,6) esto es genérico(bf5)",expresión,"");

Teniendo que quedar: "Formulario esto es genérico"

Y para los que entraron sin tener la mas puta idea como yo:

18/03/2012, 11:36

Yo haría algo así puede que tengas que ajustar un poco para que salgan o no los parentesis.

Regex.substring(Regex.Indexof("(")+1,Regex.LastIndexOf("(")-1)

Con eso te quedaria

"Formula(0,6) esto es genérico

Cadena=Regex.substring(0,Regex.Indexof("("))+Regex.substring(Regex.Indexof(")")+1,Regex.length)

Y ahi ya deberías eliminar el (0,6), yo suelo programar en java pero estas cosas deberían ser igual en C# si no recuerdo mal de cuando programe en C#.

18/03/2012, 12:52
Editado: 18/03/2012, 12:55

Depende de que sintaxis use C# para las expresiones regulares, que los paréntesis no siempre se tratan igual, en POSIX ERE, la más común:

([^)]+)

Pero delante de primer y último paréntesis tiene que ir una barra invertida para escaparlos (el sanitizer de umbria me las elimina).

Significa, paréntesis al menos un carácter que no sea un cierre de paréntesis [^)]+, seguido de un cierre de paréntesis. Si quieres que dos paréntesis vacíos se eliminen usa * en vez de +.

La otra posibilidad de sintaxis es que no haya que escapar esos dos paréntesis.

18/03/2012, 16:26

Muchísimas gracias Javierrivera2 funciono =D

machera Regex no tiene substring en C#, pero entiendo lo que quieres decirme, gracias de todas formas ;)

19/03/2012, 13:25

20/03/2012, 14:40

http://xkcd.com/208/

Este hilo ha sido cerrado.