本來想用正則Split一下sql語句中簡單場景的的GO,於是用^GO$(配合忽略大小寫和多行模式),可居然連這種情況都搞不掂: 如果刪掉$就能匹配了,但這顯然不是辦法,遂又在VS的C#交互視窗、RegexTester(.net寫的)、chrome控制台等地方試,發現只有chrome能匹配,而只要是基 ...
本來想用正則Split一下sql語句中簡單場景的的GO,於是用^GO$(配合忽略大小寫和多行模式),可居然連這種情況都搞不掂:
select 1 go select 1
如果刪掉$就能匹配了,但這顯然不是辦法,遂又在VS的C#交互視窗、RegexTester(.net寫的)、chrome控制台等地方試,發現只有chrome能匹配,而只要是基於.net的工具都不能,我一度懷疑我.net環境出問題了,重啟然並卵。後來在爆棧找到說法,參看:
答案就是:.net的$不匹配\r,只匹配\n,嚴格說是只匹配到\n之前。問題win環境換行預設就是\r\n,所以要想匹配行尾,得寫成\r?$才行。
- EOF -