chans 发表于 2010-7-23 22:53:24

热心的lzkd还在不?问个正则表达式问题

下面是数据输出状态,关键有几种显示方式:

fystatus:kee:9273/9273/9273;gin:5590/5590/5590;sen:5396/5396/5396
fystatus:force:2950/1475;mana:630/315;atman:824/412
上面是合并在一起的。不过也会分开来出现,显示如下。可以做一个正则全部包括这些情况不?还是要分2+6这么多情况触发?

fystatus:kee:9273/9273/9273
fystatus:gin:5590/5590/5590
fystatus:sen:5396/5396/5396
fystatus:force:2950/1475
fystatus:mana:630/315
fystatus:atman:824/412

还有,不是一下子就出这么多行,有时候1行,有时候2行,有时候3行。这个可以做得到一个表达式全部包括不?

chans 发表于 2010-7-23 22:54:51

^fystatus\:
这个开头是必须的。然后可以接要他自动替换不?关键抓那些数字作为变量使用。

dinglf 发表于 2010-7-24 10:13:51

不懂

lzkd 发表于 2010-7-24 11:11:30

不是很明白你的意思,可能这东西是风云里特有的.

不过,我想,一共是kee,gin,sen.....等5种值,这个理解总是不错的.
mush中的多行正则本身是不完整功能的,一定要输入匹配几行,
但我看一个正则解决问题也不是不可以...把问题分解成两部分来完成.
第一步,把^fystatus\:后的内容抓下来,就抓一行,这个很容易的
然后建个table变量如tmp
第二步,抓下来以后,在lua代码中对抓下来的内容进行分析,
该kee的就放到tmp["kee"]里面,该gin的就放到tmp["gin"]里面...新的值把旧的值替换掉.
其中第二步要对抓下的值进行当类分析,可能稍稍复杂一点.不过,我看当中都有;作为切分的,也按这个分割就是

chans 发表于 2010-7-24 11:36:23

感谢小刀。已经解决
页: [1]
查看完整版本: 热心的lzkd还在不?问个正则表达式问题