Project1

标题: 怎样在字符串中截取内容 [打印本页]

作者: 无脑之人    时间: 2012-8-26 15:17
标题: 怎样在字符串中截取内容
我想要制作装备界面,我决定仿照暗黑破坏神的方式把装备属性用编码记录,但是不知道怎样把字符串里的字符提取出来,求大神们解答~dsu_plus_rewardpost_czw
作者: 沙漠点灰    时间: 2012-8-26 17:31
看你怎么定义了,使用正则表达式,详细请F1及论坛上找...
例子:
name = "铜剑【普通】【10】"
/.*[【](.*?)[】][【](.*?)[】]/ =~ name

p $1,$2
=> "普通","10"
作者: Wind2010    时间: 2012-8-26 18:42
.split
示例:
  1. test_string = "测试用,纯卖萌"
  2. p test_string.split
  3. p test_string.split[0],test_string.split[1]
复制代码

作者: 无脑之人    时间: 2012-8-26 18:48
例如 a=‘1034587’
我要将字符串中第一个字符‘1’提取出来到变量里(在程序内部脚本里操作)
作者: 无脑之人    时间: 2012-8-26 19:08
无脑之人 发表于 2012-8-26 18:48
例如 a=‘1034587’
我要将字符串中第一个字符‘1’提取出来到变量里(在程序内部脚本里操作) ...

3楼的回答不对哦……我将你的代码输进去了……结果……


‘‘──无脑之人于2012-8-26 19:09补充以下内容:

RE:3楼
[attachimg]130703[/attachimg][attachimg]130702[/attachimg]
’’
作者: 沙漠点灰    时间: 2012-8-27 19:18
本帖最后由 沙漠点灰 于 2012-8-27 19:19 编辑
无脑之人 发表于 2012-8-26 19:08
3楼的回答不对哦……我将你的代码输进去了……结果……


楼主虽然没有采用我的答案,但是我还是强烈建议使用正则表达式!!我解释一下

name = "铜剑【普通】【10】"
这就不多说了,武器名称,它的格式是:

名称属性(没有空格)

再详细一点就是:
名称【属性1】【属性2】

而我们就是要"提取" 属性1 属性2
"提取"使用小括号,

名称可以是任何字符,用点(.) ——详情看F1,有什么\d之类的同理

名称字数不限,可以是"剑"一个字,也可以是"朗基努斯矛"5个字,就用*(它的作用请F1,请与*?做对比)

即 .*【(属性一)】【(属性二)】

属性同名称,可以是任何字符,任何大小,但是为了不出问题 使用*?

综合就是 .*【(.*?)】【(.*?)】

这是正则表达式,用//括着,即 / .*【(.*?)】【(.*?)】/

我原文用了中括号,是为了扩展,中括号的作用请F1,

用 =~ 匹配正则表达式(已可以 字符串[正则]),"提取"第一的用小括号括的用$1,第二个就是$2,以此类推,完事。

请斑竹给100经验吧......我太可怜了...




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