Re: [問題]請問正規表示式如何抓取這樣的字串

看板RegExp (正規表示式 Regular Expression)作者 (Cindy Wang)時間10年前 (2014/11/07 02:05), 10年前編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《erthe (uuuu)》之銘言: : 小弟使用VBA or perl : 目前的問題是 有字串如下 : A........B.......... : AA.......BB......... : AAA......BBB......... : 規則是字串A和字串B出現的次數一樣 請問要怎麼表達? : 小弟試過 "A{}.+B{}" 就是不知道{}內次數要怎麼一樣 perl 可以這樣寫: /(?<!A)A([^AB]*|A(?-1)B)B(?!B)/ 最前面的 (?<!A) 是說這一串比對到的字串 的前面不能剛好是一個 A 字 最後面的 (?!B) 是說這一串比對到的字串 的後面不能剛好是一個 B 字 (放這兩個的目的也就是想避免找到像這樣的字串 (漏掉前面一個 A 不吃): AAABB 往內一點點, 頭吃一個 A, 尾吃一個 B. 中間的括號裡面分有兩個 branch: [^AB]* 是一團沒有A也沒有B的東西若干(或0個) A(?-1)B 是說 先1個A, 然後再走一次中間這一個括號, 然後再1個B 其中 (?-1) 指的是想要走從它的位置往前數, 遇到的第1個左括號的那一組. 也就是 ([^AB]*|A(?-1)B) 這一組 嗯, 我是假設你要的一串 A 和一串 B, 如果不是緊臨著的話, 之間不能出現任何的 A 或 B. 這個 pattern 會接受 AAABBB KAAAACBBBB 會拒絕 AAABBBB AAACBBBB -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.121.80.249 ※ 文章網址: http://www.ptt.cc/bbs/RegExp/M.1415297116.A.8B5.html

11/07 02:06, , 1F
11/07 02:06, 1F
※ 編輯: CindyLinz (112.121.80.249), 11/07/2014 02:18:42

11/12 19:43, , 2F
大大超強的!我本來嘗試?>去做不行...最後看懂大大答案
11/12 19:43, 2F

11/12 20:14, , 3F
可否請大大印出Debug的程序,我腦袋跑步出來結果 xd
11/12 20:14, 3F

11/12 23:15, , 4F
Debug 的程序是指...??
11/12 23:15, 4F

11/20 11:05, , 5F
文章代碼(AID): #1KMxXSYr (RegExp)
文章代碼(AID): #1KMxXSYr (RegExp)