【发布时间】:2018-01-18 16:52:19
【问题描述】:
我们有一个客户使用我们的一些设备并输出一个特定的字符串,我们将其用作诊断。
但是,有问题的客户使用了他们自己的日志记录系统,该系统在输出文件中填充了许多与我们无关的随机内容。
我所追求的是在不同位置提取一个变量字符串并将这些提取的字符串放入一个新的文本文件中。
这是我所追求的变量 sting:
*X;3;194; 0;2;125;0;0012;32;0;261D3;??
如前所述,此文本可能因内容而异,但始终以 *X 开头,通常不超过 38 个字符(包括空格和 ;)
文本的一个例子是......
2018-01-15 11:16:43.566 pid=2800 tid=17 ResultReader [INFO ] packet received: *X;3;194; 0;2;126;0;0012;32;0;26357;??
2018-01-15 11:16:43.566 pid=2800 tid=17 ResultReader [ERROR] Device reset - Critical error: BALL_IN_THE_SAME_DIRECTION_WITH_WHEEL_ROTOR
2018-01-15 11:16:43.567 pid=2800 tid=17 events [INFO ] EmitEvent - RolWheelStatusRelayMsg{PreviousPacket=Protocol: EXTENDED, State: FINISH_BETTING, GameCount: 194, WinningNumber: 0, WarningFlags: [BALL_IN_THE_SAME_DIRECTION_WITH_WHEEL_ROTOR], RotorSpeed: 12, RotorDirection: CLOCKWISE, ExtendedFlags: [ROTOR_RUNNING_AT_LEGAL_SPEED, ROTOR_ROTATING_CLOCKWISE], SpinCounter: 49, BallDirection: CLOCKWISE, BallSpeed: 12, BallInPocketPosition: -1, Packet=Protocol: EXTENDED, State: FINISH_BETTING, GameCount: 194, WinningNumber: 0, WarningFlags: [BALL_IN_THE_SAME_DIRECTION_WITH_WHEEL_ROTOR], RotorSpeed: 12, RotorDirection: CLOCKWISE, ExtendedFlags: [ROTOR_RUNNING_AT_LEGAL_SPEED, ROTOR_ROTATING_CLOCKWISE], SpinCounter: 50, BallDirection: CLOCKWISE, BallSpeed: 12, BallInPocketPosition: -1}
2018-01-15 11:16:44.067 pid=2800 tid=17 ResultReader [INFO ] packet received: *X;3;194; 0;2;126;0;0012;32;0;26357;??
中间的文字可能会有所不同,但目标仍然相同。我不介意如何但需要对可以并且可能具有不同信息的不同文件是可执行的。 (如果有道理的话).
【问题讨论】:
-
那么你有没有尝试过什么?
-
你能定义一个正则表达式来捕获这个字符串吗?例如。 regex101.com/r/XjjNoF/1
-
你的字符串是否总是以双问号结尾(??)?
-
为什么是
C#和Python?不要使用标签发送垃圾邮件 -
我很困惑。你是说你对一个以编码为重点的网站要求你有一定程度的编码知识感到惊讶?即使您对编码一无所知,您仍然可以进行搜索并表明您至少尝试过。 SO 旨在成为您遇到困难时尝试的最后一个资源,而不是您甚至不确定要使用哪种语言时的第一个资源。祝你好运,希望你能找到你需要的东西:-)
标签: c# python batch-file scripting