RegExp 板


LINE

※ [本文转录自 java 看板] 作者: TonyQ (骨头) 看板: java 标题: regex讨论:以<script></script>的拆解regex为例 时间: Thu Mar 6 13:11:29 2008 给痞子: 我知道有regex版,不过对我而言regex在程式语言有必要作为介绍, 一昧的把关系给分离,只是造成认知上的隔阂而已。 当然更进阶的运用或介绍还是得往regex发展, 不过这种程度的基本介绍,程式语言版还是有必要留着的。 but 如果你觉得不符版旨可以自行处理掉 XD 这就像Web_design要不要把 jsp/asp/asp.net/js的问题切割回专版一样, 各有优劣啦。:p 本来这篇是回slalala的文,不过既然写了就贴出来, 看有没有人回响一下。XD 本篇适用对象: 了解regex是作什麽用,有一定regex基础概念的人。 ──────────────────────────────── 以底下的字串为例 "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>" ──────────────────────────────── 先把握切割的重点 按照解析层级的顺序依序 ()是区块 (这个例子没有) [] 是字 *?+{} 是次数 \是脱逸 (记得Java要写成 \\ 脱逸两次) [^] 字开头带^为反集合 所以可以先这样切 <[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?> 转换为<字1{次数1}script字2{次数2}>字3{次数3}<字4{次数4}脱逸/字5{次数5} script字六{次数6}> 这样你应该看得出来哪些是可变动的,哪些是完全比对的(浅蓝色字体)。 其中有六个word跟六个次数,基本上都是查表法可以查出来的。 查这个表 http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html 字1 : [\\s] 根据api \s A whitespace character: [ \t\n\x0B\f\r] 一个表示为空白的字元 等义於 [ \t\n\x0B\f\r] 字2 : [^>] ^有反集合的意思所以是 非">"以外的字元 字3 : [\\s\\S] 同字1 另外再加上非白的字元,其实也就是所有的字元。 (其实我认为这可以用 . 取代了) 字4、字5、字6 同字1 至於次数 直接丢去查表吧 反正不外乎三种 (零次或1次) ? (零次或无限多次 ) * (一次以上) + 还有一种就是指定次数的 { } 这用法可以指定要出现的次数,也可以用来达到上面三个特殊字元的用途。 -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.77.239
1F:推 qrtt1:好复杂 (晕) 03/06 13:52
2F:推 kyoby:经常shell或者perl的这种是基本功啊 03/06 14:54
3F:→ TonyQ:我实在是想说perl是不能拿来当例子 属性不同啊 XDDD 03/06 15:01
4F:推 qrtt1:perl的字串不一定要用", 所以比较方便一点 XD 03/06 15:20
5F:推 kyoby:正则式如果学过编译原理里的有限自动机原理将会好理解不少.. 03/06 15:31
6F:推 jb0802:[\\s]*?这个*?是几次阿 可出现无限多次*和零次或一次? 03/06 16:52
7F:→ TonyQ:0次以上 非GREED的用法 XD 03/06 17:03
-- 侃侃长论鲜窒碍 首页:http://www.psmonkey.idv.tw 众目睽睽无心颤 Blog:http://ps-think.blogspot.com 茕居少聊常人事 杀头容易告白难 欢迎参观 Java 版(@ptt.cc) \囧/ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.201.164







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP