一次正则表达式引起的“惨案”

现象:统计某段字符串中出现指定字段的个数,统计结果总是缺少,正则表达式使用(.+?)来匹配。

排查:通过对该段文字的观察,发现某个字段的值中有换行

验证:通过删除换行,重新统计,结果正常

结论:符号“.”没能匹配\n符号。需要处理。

 

一般而言,“.”用来匹配任意字符,但是需要主要的是,不能匹配\n,即换行。

如果需要使得“.”具有匹配\n的能力,则需要使用单行模式。

在.net中的正则表达式默认不是单行模式,因此需要人工设置。

 

posted @ 2019-08-10 22:29  chyshx  阅读(179)  评论(0编辑  收藏  举报