C#中,读取文本文件内容,里面往往有许多回车换行符(“\r\n”),虽然一般不可见,但却实实在在的存在。这时候,使用正则表示式进行匹配,需要考虑其存在。今天就遇到这样一个问题:
有文本文件内容如下:
DT 20180101000000
WT -1.1
SL 31.4
WL 203
DT 20180101000000
AT -4.1
BP 1023.7
HU 26
RN 99999.9
WS 1.9 92 2.0 94 3.4 79 2111 4.6 83 2103
使用正则表达式:WT\s+(?<WT>.+)$
,结果是拿不到匹配值。原因是读取到的文本内容,里面有好多回车换行符“\r\n
”。比如WT -1.1
这行,实质内容是
“WT -1.1\r\n
”,这时行尾符“$”就不起作用了。应该说,是直接读取文件内容,使用正则表达式匹配,就不起作用了。
将正则表达式改为:
WT\s+(?<WT>.+)\r\n
结果就OK了。