Project1

标题: 帮忙解释一句简单的脚本 [打印本页]

作者: 赛露休斯    时间: 2009-6-12 10:21
标题: 帮忙解释一句简单的脚本
RMXP里的一句
/\<tr.class\=\'rowbg[12].*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<\/tr\>/m

看不懂什么意思,哪位高手可以帮忙解释下。
作者: 紫苏    时间: 2009-6-12 11:23
本帖最后由 紫苏 于 2009-6-13 04:01 编辑

RMXP 哪里有这句{/fd}

这是一段多行匹配模式的正则表达式,从内容上看,是用来匹配一段 HTML 代码的,括号中的内容 (.*?),也就是 <td> ... </td>之间的内容会在匹配成功时被保存到 $1、$2、$3……中

不过 <tr.class\=\'rowbg[12].*? 这一段有点莫名其妙

一个例子:
  1. regex = /\<tr.class\=\'rowbg[12].*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<\/tr\>/m

  2. str = "<tr class='rowbg1>
  3.   <td>something1</td>
  4.   <td>something2</td>
  5.   <td>something3</td>
  6. </tr>"

  7. regex =~ str
  8. p $1          # something1
  9. p $2           # something2
  10. p $3           # something3
复制代码

作者: enghao_lim    时间: 2009-6-12 15:48
这个像匹配html代码很多点,好像是table的。--b
哪个rm用了这个啊?⊙⊙
作者: goahead    时间: 2009-6-12 18:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: enghao_lim    时间: 2009-6-12 21:17
以下引用goahead于2009-6-12 10:48:11的发言:
哦就是这个脚本了,外站看到的可以在对话框里使用HTML标签~~~

对话框使用html标签{/fd},哪位高手的作品啊?不知道阁下有没有连接还是脚本呢?
我有点想看……{/hx}
作者: 赛露休斯    时间: 2009-6-13 01:52
这个其实就是6R之眼里的一行代码,专看6R在线会员。。
我想把它应用于其它网站,光改个网址看来不行。。。。。
这个正则表达式还是有些难看懂。。。。。
还有那个方法
  1.   def get_page_users(html)
  2.     users = []
  3.     while html.slice!(/\<tr.class\=\'rowbg[12].*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<td\>(.*?)\<\/td\>.*?\<\/tr\>/m) != nil
  4.       users.push(User_6R.new($1, $3, $2))
  5.     end
  6.     return users
  7.   end
复制代码

没看懂这个是做什么的。。。。。
作者: 紫苏    时间: 2009-6-13 02:17
本帖最后由 紫苏 于 2009-6-13 03:16 编辑

这个方法就是从一段 HTML 表格代码中循环获取每一个单元格的数据,并推入一个数组中保存。如果你学过 HTML 代码的话就不难理解了:
<tr>...</tr> 之间的就是一行,这一行中包含若干个 <td>...</td>,而每个 <td>...</td> 之间就是单元格的数据。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1