У меня нет выхода после Match m = Regex.Match
. Я думаю, что есть проблема с этим. Может кто-то, пожалуйста, проверьте код, если все в порядке.Нет выхода при использовании совпадений regex
вход alarm_text
выглядит следующим образом:
Прио 1 Westerstraat марки 140 Энкхеизен Woning 4632 4651
То, что я хотел сделать, это расщепление строки в четыре группы: "Prio 1", " Westerstraat 140 Энкхеизен», "Woning бренд", "4632 4651"
using System;
using System.Text.RegularExpressions;
using System.Data.Odbc;
namespace pdw_db
{
internal class pdw_db
{
public pdw_db()
{
}
private static void databaseThis(string capcode, string melding, string korps, string streetName, string preText, string postText, string cars)
{
string[] strArray = new string[] { "insert into alarmeringen2010(capcode, desc1, department, melding, alerting, data1, voertuigen)values('", capcode, "','", melding, "','", korps, "','", streetName, "','", preText, "','", postText, "','", cars, "',);" };
string str = string.Concat(strArray);
OdbcConnection odbcConnection = new OdbcConnection("DSN=pdw_db");
try
{
OdbcCommand odbcCommand = new OdbcCommand(str, odbcConnection);
odbcConnection.Open();
OdbcDataReader odbcDataReader = odbcCommand.ExecuteReader();
while (odbcDataReader.Read())
{
Console.WriteLine(odbcDataReader.GetString(0));
}
odbcDataReader.Close();
}
finally
{
if (odbcConnection != null)
{
odbcConnection.Dispose();
}
}
}
private static void Main(string[] args)
{
if (args.Length > 2)
{
return;
}
else
{
string alarm_capcode, alarm_text, alarm_korps;
//kill qoutes in alarmering
args[1] = args[1].Replace("\"", "");
args[1] = args[1].Replace("\'", "");
args[1] = args[1].Replace("'", "");
args[2] = args[2].Replace("\"", "");
args[2] = args[2].Replace("\'", "");
args[2] = args[2].Replace("'", "");
alarm_capcode = args[0];
alarm_text = args[1];
alarm_korps = args[2];
Match m = Regex.Match(alarm_text, @"(.*\s)([A-Z]+.[0-9]+.[A-Z])(.*\s)([0-9].*\s)");
string preText = m.Groups[1].Value;
string streetName = m.Groups[2].Value;
string postText = m.Groups[3].Value;
string cars = m.Groups[4].Value;
databaseThis(alarm_capcode, alarm_text, alarm_korps, streetName, preText, postText, cars);
}
}
}
}
Почему вы показываете нам так много не соответствующего кода? Просто введите текст ввода, желаемый вывод и код с помощью Regex. –
Можете ли вы описать, как текст следует разделить словами? Трудно сказать из вашего регулярного выражения фактический шаблон, который вы ищете. – jimmyfever
preText = Prio 1 streetName = WESTERSTRAAT 140 ENKHUIZEN postText = Woning brand cars = 4632 4651 – 810