作者hpo14 (雨)
看板RegExp
标题[问题] 该怎麽写(改善) 我的 Regexp
时间Fri May 10 21:54:11 2013
VBS RegExp (两行是同一行):
'(
\d+)-(
\d+).html',(
\d+).+?[\n\r]{1}.+?(?:(?:.+?>)?
(
.+[话卷])(?:\s.+?)?|(?:.+?>)?(
.+?))</
<!-- 一堆 html -->
<td style="width:10%;white-space:nowrap;"><a href='#'
onclick="cview('102-1.html',1);return false;" id="c1" class="Vol">
第01卷</a></td><td style="width:10%;white-space:nowrap;"><a href='#'
onclick="cview('
102-
2.html',
1);return false;" id="c1" class="Vol">
第02卷</a></td><td style="width:10%;white-space:nowrap;"><a href='#'
onclick="cview('102-3.html',1);return false;" id="c3" class="Vol">
第03卷</a></td><td style="width:10%;white-space:nowrap;"><a href='#'
onclick="cview('102-4.html',1);return false;" id="c4" class="Vol">
以此後面类推
<!-- 一堆 html -->
---------------- 分隔线 -------------------
我的 RegExp 如上,现在是都可以正常工作。
但是紫色区块,因为来源的关系,会有以下几种情况 (就目前观察)@@
第一个紫色区块,目标是下面这五种
1.
第\d+卷</
2.
第\d+话</
3.
<font color=red id=lch>
第\d+话</
4.
第\d+话 各话标题</
5.
<font color=red id=lch>
第\d+话 各话标题</
第二个紫色区块,的目标是下面这种
6.
番外\d+</
7.
<font color=red id=lch>
番外2</
1. 请问是否有办法尽量在一次的正规比对内写出符合以上可能的 Regexp
(下面这个不是很重要,我可以在程式内处理这个问题)
2. 另外,每一次的紫色区块的比对,只会符合其中一种
但是 VBS 跟 Ruby, 都会将那两个紫色区分为两个 Group 4, Group 5
group 1 2 3 4 5
Ex: Match 1:
101,
1,
14,
第\d+话,
Match 2:
101,
2,
14, ,
番外\d+
有办法把这两个紫色区块看作是同一个 Group4 吗?
也就是 当 Group4 = null 的时候,就不纪录。
直接将 Group5 的结果存在 Group4 内。
这样有办法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.204.46.87