Re: [問題] 請問例外的寫法
看板RegExp (正規表示式 Regular Expression)作者l10nel (小失)時間12年前 (2012/08/01 17:11)推噓7(7推 0噓 13→)留言20則, 4人參與討論串4/4 (看更多)
※ 引述《rkcity (喵。罐頭)》之銘言:
: 借題詢問一下各位前輩..
: http://regexr.com?31mr3
: - - - - - - - -
: Context
: - - - - - - - -
: -size 512
: -size 556
: -size 512556
: -size 556556
: -size 768
: -size 512768
: -size 556768
: - - - - - - - -
: - - - - - - - -
: RegExp
: - - - - - - - -
: -size (?!512|556)
: - - - - - - - -
: 這樣子可以抓出 768 前的 -size
: 可是如果我想要抓的是 不是512和556
: 也就是會包含512556 556556 512768 556768等雖是512 556開頭
: 但整體數字不是512和556的話
: 應該要怎麼改呢?
: 另外,如果我想要順便抓出後面這個數值的話
: (?!512|556)因為是不包含其結果 所以沒辦法用$1取得 >"<
: 感謝各位前輩 m(_ _)m
use strict;
my @a = ("-size 512", "-size 556", "-size 512556", "-size 556556", "-size
512768", "-size 556768", "-size 333555");
for my $i (@a) {
if ($i =~ m/-size (?!(?:512|556)$)(?:512|556)(.+)$/) {
print "Matched: " . $1 . "\n";
}
}
结果:
Matched: 556
Matched: 556
Matched: 768
Matched: 768
說明:找出 512 或 556 後面的數字,但如果數字僅是 512 或 556,或不以 512 或
556 開頭,則略過。
這是你要的嗎?如果不是,可設法自行修改。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 76.198.133.1
推
08/01 17:24, , 1F
08/01 17:24, 1F
→
08/01 17:25, , 2F
08/01 17:25, 2F
→
08/01 17:26, , 3F
08/01 17:26, 3F
→
08/01 17:26, , 4F
08/01 17:26, 4F
→
08/01 17:28, , 5F
08/01 17:28, 5F
推
08/01 18:49, , 6F
08/01 18:49, 6F
推
08/01 19:35, , 7F
08/01 19:35, 7F
→
08/01 19:35, , 8F
08/01 19:35, 8F
→
08/01 19:36, , 9F
08/01 19:36, 9F
→
08/01 19:36, , 10F
08/01 19:36, 10F
推
08/01 19:43, , 11F
08/01 19:43, 11F
→
08/01 19:43, , 12F
08/01 19:43, 12F
→
08/01 19:43, , 13F
08/01 19:43, 13F
→
08/01 19:44, , 14F
08/01 19:44, 14F
→
08/01 19:45, , 15F
08/01 19:45, 15F
→
08/01 19:48, , 16F
08/01 19:48, 16F
推
08/01 19:49, , 17F
08/01 19:49, 17F
→
08/01 20:09, , 18F
08/01 20:09, 18F
推
08/01 20:15, , 19F
08/01 20:15, 19F
推
08/01 22:47, , 20F
08/01 22:47, 20F
討論串 (同標題文章)
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章