-1
我正則表達式巫術的力量是不夠的,打這一個:如何重複非捕獲組「子查詢」?
輸入:
x|a=1|b=2,y|c=3|d=4,
(獎勵積分,如果你讓我放棄最後一個逗號)
期望的匹配(和組):
x|a=1|y=2
(X,A,1,Y,2)
y|c=3|d=4
(Y,C,3,d,4)
(獎金點,如果我可以命名每個組)
我的失敗模式:
(x|y|z)(?:\|(.+?)=(.+?))*,
基本上,我想X,Y或Z和所有的 '|'之後分離出'this = that'。
匹配(和組)我得到:
x|a=1|b=2,
(X,B,2)
y|c=3|d=4,
(Y,d,4)
我有逗號在比賽中,但這沒什麼大不了的,主要問題是我只能得到每場比賽的最後一個「小組」。爲什麼第一個被忽略?
在.NET中你可以看到重複捕獲鏈接在組[?]。捕獲。不要擔心,您已經擁有正確的正則表達式,並且可以提取所有數據。順便說一句,我認爲你可以放棄最後的逗號 –
該死的,我沒有想到捕獲。我想我會改變測試網站... – Kilazur
這是你自己的格式?正如@KovpaevAlexey所說,如果每個子序列都以'[a-z] \ |'開頭,那麼您就不需要逗號。但如果它是你自己的格式,我會使用JSON或XML代替。或者去全狀態機並自己寫。但是這基本上再也沒有道理了,可悲的說。 –