北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 4319|回复: 3

求教正则表示式中(),[]使用的区别

[复制链接]
发表于 2015-5-10 20:06:27 | 显示全部楼层 |阅读模式
本帖最后由 popmud 于 2015-5-10 12:15 PM 编辑

求教正则表示式中(),[]使用的区别,另外和*的配合使用!
在做查看技能触法器的时候,│ 基本轻功 (dodge)                         - 一鳞半爪  30/     0│
代码见下面
  1. ^(>)*│(□| )*(\\S+)\\s+\\((\\S+)\\)\\s+\\-\\s+\\S+\\s+(\\d+)\\/\\s+\\d+│
复制代码



正真取变量时,w[3]才是“基本轻功”,w[4]才是dodge,
如果将()改为[]时,代码如下:
  1. ^[>]*│[□| ]*(\\S+)\\s+\\((\\S+)\\)\\s+\\-\\s+\\S+\\s+(\\d+)\\/\\s+\\d+│
复制代码


正真取变量时,w[1]是“基本轻功”,w[2]是dodge

例如:我要正则匹配“>你用功完毕”
^(>)你用功完毕,是正确,还是^[>]你用功完毕,正确

如果要匹配出现">>你用功完毕"的现象
^(>*)是正确,还是^(>)*正确
或者
^[>*]是正确,还是^[>]*正确

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-5-11 12:30:23 | 显示全部楼层
正则表达式有N种 (perl, python, ruby, sed, awk, grep, ...),每种正则表达式可能稍有差别, 但总体来说差不多, 一般来说, () 表示分组, [] 有两种用法:
1. [ab] 表示 a或b中任一个
2. [^ab] 表示非a和b的任何一个其它符号

具体的看看 master regular expression 这本书吧...
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-5-11 14:15:35 | 显示全部楼层
http://www.jb51.net/tools/zhengze.html
每次写正则必打开,边看边写。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2015-5-11 19:40:52 | 显示全部楼层
我不懂楼上说的......
我只知道,括号仅用在取变量的时候
换句话说,有几个括号,就有几个w[]
[]和()的区别很大,[]很多时候我在乱用,反正用着不出错,只要别把*+?等放在里面就行
比如\\s*,我写[\\s]*貌似也没毛病
当然,比如[a-z]貌似代表所有小写字母,不过我基本用不到
我经常过不去的时候,就乱加[],不知道什么时候就过去了......
()完全用在取变量的时候......当然\\(\\)除外......
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-1 01:26 PM , Processed in 0.009193 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表