Odbc与php、c#、preg_匹配这段代码可能吗

Odbc与php、c#、preg_匹配这段代码可能吗,c#,php,odbc,preg-match,C#,Php,Odbc,Preg Match,我想知道这是否可行 } 报警文本字符串示例: Prio 1 TOM KRANENBURGSTRAAT 140 ENKHUIZEN建筑品牌ENK646 因此字符串保存在代码的两个位置: 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]

我想知道这是否可行

}

报警文本字符串示例: Prio 1 TOM KRANENBURGSTRAAT 140 ENKHUIZEN建筑品牌ENK646

因此字符串保存在代码的两个位置

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#中的此代码类似:

(请注意,代码将失败:您的代码显示四个捕获组(preText、streetName、postText和city),但您的表达式只有三个(
(.*\s)
([A-Z]+[0-9]*)
)和
(\s.[A-Z]*\s)

在PHP中,
preg_match
如果匹配成功将返回1,如果匹配失败将返回0。您可以查询
m.Success
以获得等效值(即匹配成功时返回true,匹配失败时返回false)

原始表达式区分大小写(例如,
[A-Z]
将不匹配小写字母。如果希望搜索不区分大小写,请更改行:

Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");

谢谢你的回答

我会解释我在做什么

我是一名消防员,我在一个网站上工作。这个网站显示了我们的消防/ems呼叫

优先级1=紧急程度(必须插入警报中)

TOM KRANENBURGSTRAAT 140=街道(必须插入地址)

ENKHUIZEN=城市(必须插入地址)

Buitenbrand=消息类型(必须插入数据1)

ENK646=消防车编号(必须插入描述中)

把它们分成5组是很好的,但我把它分成了4组。 街道名称总是大写字母

这是我的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 ; 如果不存在“brandweer_报告”,则创建表( `id`int(11)非空自动增量, `data1`varchar(255)非空默认值'Won', `image`varchar(255)默认为空, `地址`文本不为空, `date1`datetime非空默认值'0000-00-00 00:00:00', `date2`datetime默认值'0000-00-00 00:00:00', `date3`datetime默认值'0000-00-00 00:00:00', `摘要`案文, `boss`varchar(255)默认为空, `people`varchar(11)非空默认值'0', `部门'int(11)不为空默认值'0', `desc`text, `已发布的'tinyint(1)非空默认值'1', `警告'varchar(255)非空默认值'0', `gmap_报告纬度'varchar(255)非空默认值'0', `gmap_报告经度'varchar(255)非空默认值'0', `计数器'int(11)不为空默认值'0', `gmap`tinyint(6)非空默认值'1', `按'varchar(255)NOT NULL, `按2`varchar(255)NOT NULL, `按3`varchar(255)NOT NULL, `updatename`varchar(255)非空默认值'admin', `updatedate`datetime非空默认值'0000-00-00 00:00:00', `boss2`varchar(255)不为空, `einsatzticker`int(11)非空默认值'0', `notrufticker`int(11)不为NULL默认值为'0', `状态'int(11)非空默认值'0', `tickerKAT`int(11)非空默认值'0', 主键(`id`), 键'date1'('date1'), 键`published`(`published`) )ENGINE=MyISAM默认字符集=utf8自动增量=2;
Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");
Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)", 
              RegexOptions.IgnoreCase);
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 ;