7
想象一下,我們有一個包含子字符串'cat'和'dog'以及其他隨機字符的長字符串,例如。字符串模式匹配問題
cat x dog cat x cat x dog x dog x cat x dog x cat
這裏'x'表示任何隨機的字符序列(但不是'貓'或'狗')。
我想要做的是找到每個'貓',其後是任何字符,除了'狗',然後是'貓'。我想在每種情況下刪除第一個「貓」的實例。
在這種情況下,我會想刪除括號[貓]因爲沒有「狗」後,之前的下一個「貓」:
cat x dog x cat x dog x dog x cat x dog x cat
:
cat x dog [cat] x cat x dog x dog x cat x dog x cat
就結了
這怎麼辦?
我想以某種方式使用像(N)(?=(n))的正則表達式的作爲VonC推薦 here
(cat)(?=(.*cat))
以匹配字符串中的所有對 '貓' 的。但我仍然不確定如何使用它來刪除在「貓」之前沒有跟隨「狗」的每隻貓。
我正在處理的真正問題是在Java中。但我真的只是尋找一個通用的僞代碼/正則表達式解決方案。
嗨。知道你在用什麼語言工作會很有用。 – 2010-10-28 16:43:02
@klausbyskov:你確定要編輯嗎?下面的兩句話和這個例子似乎表明,「跟隨」的確是他的意思。 – 2010-10-28 16:51:12
我的意思是'跟着'沒有先行! – nodmonkey 2010-10-28 16:56:26