C#.NET VB.NET 正規表示式換行符號匹配問題

如果在.NET中使用正規表示需要注意的是如果找尋的字串中有換行符號

如果在.NET中使用正規表示需要注意的是如果找尋的字串中有換行符號

記得使用 RegexOptions.Singleline

指定單行模式, 變更點 (.) 的意義,使它符合一切字元 (而不是 \n 之外的一切字元)

例如想要擷取SQL檔中CREATE TABLE 的語法

CREATE TABLE `a` (
  `a1` varchar(10) NOT NULL default '',
  `a2` varchar(10) NOT NULL default '',
  `a3` varchar(10) NOT NULL default '',
  PRIMARY KEY (`a1`,`a2`,`a3`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

以上是MYSQL匯出時的格式

如果使用

new Regex("CREATE TABLE (.*?);");

下去做擷取的話是抓不到任何東西的

必須要改成

new Regex("CREATE TABLE (.*?);", RegexOptions.Singleline);

 

 

我經營的論壇: 台論之星

塵世中一位載浮載沉之小小工程師

michael-chen@jiebu-lang.com