使用php,c#,preg_match的Odbc就是这个代码的可能

时间:2012-04-02 00:27:38

标签: c# php odbc preg-match

我想知道这是否可行。

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个地方

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 ;