本来想用正则Split一下sql语句中简单场景的的GO,于是用^GO$(配合忽略大小写和多行模式),可居然连这种情况都搞不掂:
select 1 go select 1
如果删掉$就能匹配了,但这显然不是办法,遂又在VS的C#交互窗口、RegexTester(.net写的)、chrome控制台等地方试,发现只有chrome能匹配,而只要是基于.net的工具都不能,我一度怀疑我.net环境出问题了,重启然并卵。后来在爆栈找到说法,参看:
答案就是:.net的$不匹配 ,只匹配 ,严格说是只匹配到 之前。问题win环境换行默认就是 ,所以要想匹配行尾,得写成 ?$才行。
- EOF -