我在的圖案一串短字符串的:正則表達式或掃描器
<text @varible1 more text><, @variable2 text ><@variable3 text text>
的@variableN是佔位符,每個支架是一個「部分」,這表明,如果封閉varibale是空字符串,'部分'將不存在。我想用正則表達式來提取每個部分,然後根據相應的變量是否爲空來重新組裝整個字符串。例如,如果我通過@變量1 =「你好」 @ variabl3 =「世界」的整個字符串應按返回:
text hello more text, world text
起初我想,也許我可以使用正則表達式足夠的技巧來完成這項工作。然後我發現'部分'可以嵌套,並且我需要轉義一些特殊字符,例如 - '<','>'和'@'。我對它的看法越多,它就越像DSL。所以也許開發掃描儀會是一個更好的主意?我只知道一點關於編寫解析器的知識。所以我有點卡住,不知道要走哪條路。
如果有人在這種情況下有經驗,請說明一下。謝謝。
語法示例
<text @varible1 more text><, @variable2 text ><@variable3 text text>
<text @varible1 more text><, @variable2 <, @nestedVaraible> text \<@userName\> > # with nesting and escaping
<text @varible1 more text><, @variable2 text ><@variable3 \@twitterAccount> # escaping‘@
」
如果您提及您使用的語言,可能會更容易引導您。有人可能已經有一些可配置的東西可以使用。當然,這聽起來像是一個解析器問題。 – fncomp
PHP或Python會很好。 – Shawn
Gotcha,你可以發表幾行文字,以便我可以瞭解你的語法要點。可能,我會建議修改[BeautifulSoup](http://www.crummy.com/software/BeautifulSoup/documentation.html)。 – fncomp