我有以下格式一些文本輸入:複雜的正則表達式的正則表達式
[PARENT] - [選項] - [選項]
例如
- BIKE -XT-MM-LX-100-BB
- TRICYCLE -MM-XP
- MOTORBIKE -X100V (-X100V是不是一個不錯的選擇)
我使用正則表達式分離選項從父。 由於某些例外情況,將選項分開並不像您看到的那麼容易。 除了以X開頭並且長於兩位數的任何東西,例如#3(其中-X100V不是選項)之外,任何後面跟短劃線的選項都應該是一個選項。 後來我與表達等,這些去分開大塊:
// Only separates 2 digit options, but we have more digit options:
(\A[^-]+)(-\w\w\b)+
// 2 digits and more option which -X100V fits into also. but not an option:
(\A[^-]+)(-\w{2,}\b)+
// which separates any 2 digit and longer followed by dash as an option
// unless it is started with X (which rules out my 2 digit -XX options by mistake):
(\A[^-]+)(-[^\BX]\w{1,}\b)+
現在我只需要一個步驟,以增加一條規則,只有消除了開始與-X的情況,但都超過兩位數,那麼我可以再次包含像-XT這樣的示例。
我很想聽聽這些建議。
@Ic。真的很感謝你的回答。我其實也是這樣做的。然而,正則表達式是一種強大的工具,可以將相同的結果寫入一段非常短且相當可讀的代碼行,我主要想學習如何完成這種類型的轉換。 – Mehrad