2 wang ting910 wang_ting910 于 2014.12.09 11:37 提问

使用C#截取记事本中的文本

文本内容如下,要截取到的内容【power on all,相对应大括号里Run=后面的内容】,【power off all,相对应大括号里run=后面的内容】

Page1{
INIT{
}
TERM{
}
delay=1000

     power on all{ 

XPosition=250
YPosition=250
Width=100
Height=35
Run=[com3 115200]#@|CRC|Y(32)00(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)01(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)02(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)03(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)04(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)05(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)06(32)0(32)43690(32)43690(32)43690+#@|CRC|Y(32)07(32)0(32)43690(32)43690(32)43690
Type=1
}

power off all{
XPosition=450
YPosition=250
Width=100
Height=35
Run=[com3 115200]#@|CRC|Y(32)00(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)01(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)02(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)03(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)04(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)05(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)06(32)0(32)21845(32)21845(32)21845+#@|CRC|Y(32)07(32)0(32)21845(32)21845(32)21845
Type=1
}
}

3个回答

caozhy
caozhy   Ds   Rxr 2014.12.09 11:52

正则表达式
(?is)(?<=Run\=).*?(?=\nType)

wang_ting910
wang_ting910 如果再将type的值也获取到怎么写啊
接近 3 年之前 回复
effun
effun   2014.12.09 13:03

这种结构化文本很容易分析的,按照结构的定义逐行读取分析,可以取到所有的信息。

wang_ting910
wang_ting910 这种方法我也知道,想找简单点的
接近 3 年之前 回复
q107770540
q107770540   Ds   Rxr 2014.12.09 13:17

(?is)(?<=Run=).*?Type=\d+

wang_ting910
wang_ting910 获取到了,但是没有获取到 power on all和 power off all
接近 3 年之前 回复
wang_ting910
wang_ting910 这样获取到的是列表吗?对正则不是很熟,原来只做过验证判断,可以具体点说说吗?
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片