我有一個配置文件,它看起來有點像這樣拆分文件到相關科室在PHP
Blah
Diddel
Foo
Bar1
Bar2
One
XXY
Password%1 = something
Password%2 = other
Password%3 = nuffing
Completely different stuff here
RandomS6}=2
User%1 = Henry
User%2 = Marcus
User%3 = SecretAdmin
More stuff
Even more stuff
Loads of stuff
這是一個config.conf文件,用戶通過PHP的形式上傳。我想讀取該文件,並建立5頁新的文件出來,如下所示:
- 所有從開始排隊幷包括行XXY
- 所有的「密碼%......」行
- 最後的「密碼......」和第一之間的界線「用戶......」行
- 所有「用戶......」行
- 下的一切「用戶......」行
現在我匹配可以處理字符串,正則表達式將是甜的,但因爲它是一個配置有嚴格的格式,我可以
while (substr($line,0,5) == "Passw" { ...
我可以不在身邊讓我的頭是結構方式bodge它。 我開始使用嵌套的if循環,但是a)讓我感到瘋狂效率低下('User ...'塊之後的每一行仍然得到'Password ...'的測試)並且b)它不僅看起來很模糊也是調試的噩夢。
必須有一個聰明的方法來做到這一點?我認爲它就像交易牌一樣 - 「從甲板上開始,將牌夾入這堆,直到'x'發生,然後將牌夾入另一堆,直到'y'發生。」但我不夠程序員的頭腦。
我已經做了大量的谷歌搜索和在這裏 - 但我得到的頁面,告訴我如何分割逗號,或按行數拆分,但沒有教程分割語義,因爲它是?
非常感謝任何提示!
P.S. - 如果有更適合該角色的東西,則不必是PHP。但我是Ruby的初學者和Python的寶貝 - 我知道PHP比其他任何東西都好。
您描述的「交易卡」算法可以使用'itertools'在Python中輕鬆實現。 *(這與其他語言不太複雜)*。 –
itertools書籤。對於這項任務來說,學習曲線太陡,但看起來值得投入一段時間。謝謝! – sheepsky