2017-01-11 3 views
-1

ich diesen Text machen will:Filter Worte und Zahlen in Textdatei

203 
00:16:38,731 --> 00:16:41,325 
Happy Christmas. 
your arse I pray God it's our last. 

Um wie dies in Variablen zu sein:

Int section : 203 
String start_time : 00:16:38,731 
String end_time : 00:16:41,325 
String Content : 
Happy Christmas. 
your arse I pray God it's our last. 

In meiner Suche ich gefunden Verwenden Sie RegEx, aber ich kann es nicht verwenden. Das fand ich kann es helfen, zu verstehen, was ich meine:

Regex unit = new Regex(@"(?<sequence>\d+)\r\n(?<start>\d{2}\:\d{2}\:\d{2},\d{3}) --\> " + @"(?<end>\d{2}\:\d{2}\:\d{2},\d{3})\r\n(?<text>[\s\S]*?\r\n\r\n)", RegexOptions.Compiled | RegexOptions.ECMAScript); 

Dies sollte mit Untertitel-Dateien l arbeitet Wie kann ich es tun?

Thanks :)

+0

Versuchen 'var res = unit.Replace (s,„Abschnitt Int: $ {Folge} \ nSTRING START_TIME: $ {start} \ nSTRING end_time : $ {end} \ nString Inhalt: \ n $ {text} ";) –

Antwort

0

Versuchen Sie folgendes:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 

namespace ConsoleApplication41 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string input = 
       "Int section : 203\n" + 
       "String start_time : 00:16:38,731\n" + 
       "String end_time : 00:16:41,325\n" + 
       "String Content :\n" + 
       "Happy Christmas.\n" + 
       "your arse I pray God it's our last.\n"; 

      string pattern = 
       @"Int section :\s+(?'section'\d+)\s+" + 
       @"String start_time :\s+(?'start'[\d:,]+)\s+" + 
       @"String end_time :\s+(?'end'[\d:,]+)\s+" + 
       @"String Content :(?'content'[^$]+)"; 

      Match match = Regex.Match(input, pattern, RegexOptions.Multiline); 
      Console.WriteLine(match.Groups["section"].Value.Trim()); 
      Console.WriteLine("{0} --> {1}", match.Groups["start"].Value.Trim(), match.Groups["end"].Value.Trim()); 
      Console.WriteLine(match.Groups["content"].Value.Trim()); 
      Console.ReadLine(); 
     } 
    } 

} 
+0

Danke für Ihre Zeit .. aber Ihre Eingabe anders von mir ... Ich habe Untertitel-Datei .. diese Arbeit mit einem Abschnitt von Wörtern .. und mein Text ist muss so sein: 203 00: 16: 38,731 -> 00: 16: 41,325 Frohe Weihnachten. dein Arsch ich bete Gott es ist unser letzter. –

+0

Es sieht so aus, als wären in der Zeit Leerzeichen von: [\ d :,] zu: [\ d \ s :,] – jdweng

+0

Danke, dass du mich inspirierst, es zu lösen –

Verwandte Themen