我需要幫助,爲此問題創建最佳可能的正則表達式。Java正則表達式。獲取特定關鍵字之間的子串
我有組合/起始和結束測試,我需要得到全部子字符串/起始分隔到結束分隔之間的任何單詞。
假設定界符的這個表:
開始| END
CAT | DOG
APPLE | ORANGE
LION | ZEBRA
PANDA | CAT
樣品輸入:
substring1 CAT substring2 substring3 DOG substring4 substring5 CAT substring6
APPLE substring7 substring 8 ORANGE ORANGE substring9 DOG substring10 PANDA
substring11 CAT substring12 DOG substring13 LION substring10 substring11 ZEBRA substring12
CAT substring13 substring14 APPLE substring15 substring 16 ORANGE
輸出必須是:
- CAT substring2 substring3 DOG
- APPLE substrin7 substring8 ORANGE
- PANDA子11 CAT
- LION substring10子11 ZEBRA
- APPLE substring15 substring16 ORANGE
我的正則表達式:
CAT (.)*? DOG | APPLE (.)*? ORANGE | LION (.)*? ZEBRE | PANDA (.)*? CAT
我有問題處理有其它起始定界符的多個occurence字符串。
舉個例子:
CAT word1 word2 word3 word4 APPLE word5 word6 word7 DOG
我知道,這將匹配這個CAT *(。)? DOG但這是錯誤的,因爲子字符串包含起始的定界符之一。
我只需要一個正則表達式,這將讓所有的起始分隔符的話高達其匹配的結束分隔符,如果有史以來子不包含其他起始定界符的任何occurence。
有什麼建議嗎?由於
可以在這些範圍相交的噸?例如CAT substring2 LION substring3 DOG substring4 ZEBRA –
nope。它只會跳過 – nfinium
如果它們包含一些其他起始定界符的出現,那麼是否要匹配該定界符? – keyser