Duda Regex y acentos
-
miércoles, 27 de junio de 2012 16:32
Saludos compañeros, tengo un problemilla con una captura en regex , resulta que mi expresion es esta;
Regex r = new Regex(@"COD:\s(\d+)\r\n(.+)\r\n", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
Y la segunda captura ("$2") no me reconoce los acentos no se si hago bien usando la expresión "." o debería hacerlo de otra manera para evitar esto.
El resultado que me da es un texto como esto:
"�Es conveniente limpiar exteriormente el c�rter de grasas y barros que se acumulan en �l?"
Como veis aparte de acentos no reconoce algún carácter mas como "¿"
Todas las respuestas
-
miércoles, 27 de junio de 2012 19:31
Cabría preguntar por qué medios llega la cadena o adónde va. Pareciera estar afectada por un proceso de encoding que nada tiene que ver con la captura.
using System; using System.Text.RegularExpressions; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Regex r = new Regex(@"COD:\s(\d+)\r\n(.+)\r\n", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase); string s0 = "COD: 123\r\n¿qué?\r\n"; Console.WriteLine(r.Match(s0).Groups[2].Value); // string s1 = Encoding.ASCII.GetString(Encoding.Default.GetBytes(s0)); Console.WriteLine(r.Match(s1).Groups[2].Value); Console.ReadKey(); } } }
-
miércoles, 27 de junio de 2012 21:32
bueno el string viene de un .txt y va a una base de datos en sqlite
He probado tu código y me resultan los caracteres con acentos como "?".
- Editado rafaxplayer miércoles, 27 de junio de 2012 21:40
-
jueves, 28 de junio de 2012 6:53
Bueno ya lo solucione , es usar codificación por defecto al extraer el string()
StreamReader streamReader = new StreamReader(openFileDialog1.FileName, System.Text.Encoding.Default);
mis datos son correctos en el debug de visual por ejemplo :
¿Cómo se llama el acuerdo internacional, al cual está adherido España, que reglamenta las condiciones de transporte de las distintas mercancías perecederas y los requisitos que deben reunir los vehículos utilizados?¿Cómo se llama el vehículo cuyo depósito tiene forma de pirámide?¿Cómo se llama el vehículo formado por un conjunto de botellas o pequeñas cisternas conectadas entre sí mediante un colector?¿Cómo se llama la técnica que permite que los camiones se embarquen por un extremo del tren, uno tras otro, sobre vagones con ruedas de diámetro reducido?¿Cómo se llaman las agencias que intervienen en transportes en los que, desde la recepción de la carga hasta su entrega al destinatario, no se precisa ninguna actuación distinta del propio traslado de la mercancía?¿Cómo se llama también al transporte de mercancías por cuenta propia que realiza una empresa cuya actividad principal no es la de transporte?¿Cómo se puede clasificar el transporte de mercancías?
Pero mi problema ahora es cuando los inserto en la bd de sqlite , resultan así:
¿A cuántos caballos de vapor (CV) equivale un kilovatio (kW)?
- Editado rafaxplayer jueves, 28 de junio de 2012 7:56

