我有一些像Foo.<Whatever>.$(Something)
定義的格式的一些字符串,我想將它們分成幾部分,並讓每個部分自動分配給一個變量。模式匹配與提取找到的子字符串變量
我曾經寫過類似bash/shell pipe命令選項'<'的C#類和運算符重載。用法是像
ParseExpression ex = pex("item1") > ".<" > pex("item2") > ">.$(" > pex("item3") > ")";
ParseResult r = new ParseResult(ex, "Foo.<Whatever>.$(Something)");
ParseResult
然後有一個解釋的鑰匙物品1通過項目3設定爲指定字符串中找到的字符串。方法pex
生成了一些可以與>操作符一起使用的對象,最終生成一個構成ParseExpression
的ParseExpressionParts鏈。
我目前沒有手頭的代碼,在我開始從頭開始編寫代碼之前,我想我最好問問是否有人已經完成併發布了它。
這應該可以通過一個簡單的正則表達式來實現,這是沿着^(\ w +)\的方向。 <(\w+)> \。\ $ \((\ w +)\)$',這會產生Foo,Whatever和Something作爲組1,2和3.不需要解析器。 – Heinzi 2015-02-05 14:48:33
有沒有一些漂亮的庫,可以更容易地構造正則表達式表達式:'Regex r = RegexBuilder.AnyChar()。FollowedBy('<')。AnyChar()。FollowedBy('>')... '? – David 2015-02-06 11:59:51
我建議「咬緊牙關」,學習正則表達式語法。是的,這是一個非常晦澀的語言,但(與其他晦澀難懂的語言相反),它非常有用,並且(或多或少)標準化。這是一次性的投資,從長遠來看,這將是回報。 – Heinzi 2015-02-06 12:26:56