我想知道这是否可行。
using System; using System.Data.Odbc;namespace pdw_db { class pdw_db { 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]; // alles in de database graag. databaseThis(alarm_capcode, alarm_text, alarm_korps); string2 = alarm_text; preg_match('/(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)/', string2, matches); preText = matches[1]; streetName = matches[2]; postText = matches[4]; city = matches[3]; // alles in de database graag. databaseThis(streetName, city, preText, postText); } return; } static void databaseThis(string capcode, string melding, string korps) { string queryString = "insert into alarmeringen2012(capcode, melding, label)values(\'" + capcode + "\',\'" + melding + "\',\'" + korps + "\');"; string queryString = "insert into jos_reports(address, summary, desc)values(\'" + streetName +"\',\'" + preText + "\',\'" + postText + "\');"; using (OdbcConnection connection = new OdbcConnection("DSN=pdw_db")) { OdbcCommand command = new OdbcCommand(queryString, connection); connection.Open(); OdbcDataReader reader = command.ExecuteReader(); while (reader.Read()) {// do nothing Console.WriteLine(reader[0]); } // Call Close when done reading. reader.Close(); } } }
}
示例alarm_text字符串: Prio 1 TOM KRANENBURGSTRAAT 140 ENKHUIZEN Buitenbrand ENK646
所以字符串保存在2个地方
答案 0 :(得分:0)
代码:
preg_match('/(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)/', string2, matches);
preText = matches[1];
streetName = matches[2];
postText = matches[4];
city = matches[3];
与C#中的此代码类似:
// Note: include a reference to System.Text.RegularExpressions.
Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");
string preText = m.Groups[1].Value;
string streetName = m.Groups[2].Value;
string postText = matches.Groups[4].Value;
string city = matches.Groups[3].Value;
(请注意,代码将失败:您的代码显示四个捕获组(preText,streetName,postText和city),但您的表达式只有三个((.*\s)
,([A-Z]+.[0-9]*)
和{{ 1}}。)
在PHP中,如果匹配成功,(\s.[A-Z]*\s)
将返回1,如果失败则返回0。您可以查询preg_match
以获取等效值(如果匹配成功则为true,如果失败则为false)。
原始表达式区分大小写(例如,m.Success
与小写字母不匹配。如果您希望搜索不区分大小写,请更改以下行:
[A-Z]
到
Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");
答案 1 :(得分:0)
thnx的答案。
我会解释我在做什么。
我是一名消防员,我正在网站上工作。这显示了我们的火/电话。
Prio 1 =紧急程度(必须插入警报)
TOM KRANENBURGSTRAAT 140 =街道(必须插入地址)
ENKHUIZEN =城市(必须插入地址)
Buitenbrand =消息种类(必须插入data1)
ENK646 =救火车号码(必须在desc中插入)
将它们分成5组是很棒的。但是我让它在四个小组上工作。 街道名称始终是大写字母
这是我的sql:
CREATE TABLE IF NOT EXISTS `brandweer_reports` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data1` varchar(255) NOT NULL DEFAULT 'Won', `image` varchar(255) DEFAULT NULL, `address` text NOT NULL, `date1` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `date2` datetime DEFAULT '0000-00-00 00:00:00', `date3` datetime DEFAULT '0000-00-00 00:00:00', `summary` text, `boss` varchar(255) DEFAULT NULL, `people` varchar(11) NOT NULL DEFAULT '0', `department` int(11) NOT NULL DEFAULT '0', `desc` text, `published` tinyint(1) NOT NULL DEFAULT '1', `alerting` varchar(255) NOT NULL DEFAULT '0', `gmap_report_latitude` varchar(255) NOT NULL DEFAULT '0', `gmap_report_longitude` varchar(255) NOT NULL DEFAULT '0', `counter` int(11) NOT NULL DEFAULT '0', `gmap` tinyint(6) NOT NULL DEFAULT '1', `presse` varchar(255) NOT NULL, `presse2` varchar(255) NOT NULL, `presse3` varchar(255) NOT NULL, `updatename` varchar(255) NOT NULL DEFAULT 'admin', `updatedate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `boss2` varchar(255) NOT NULL, `einsatzticker` int(11) NOT NULL DEFAULT '0', `notrufticker` int(11) NOT NULL DEFAULT '0', `status` int(11) NOT NULL DEFAULT '0', `tickerKAT` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `date1` (`date1`), KEY `published` (`published`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;