0
考慮類似printf
函數的format
參數。喜歡的東西:正則表達式 - 格式字符串中的捕獲類型說明符
printf("Hello %s, your rating is %i%%", name, percentage);
我想用正則表達式來捕獲所有類型說明符(在上述情況下,%s
和%i
而不是%%
)。
我已經開始使用天真的(%[^%])
模式,但它錯誤地捕獲了諸如%%f
之類的內容,而不是「轉義」它。當然,%%%f
應該被解釋爲一個轉義的「%」,然後是一個說明符。
我想我需要一些更復雜的模式(可能是後面看?),但無法整理出來。有什麼建議麼?注:我知道我的模式不處理長度說明符和其他格式標誌,如%2f
等,但這對我來說很好,因爲我的目標主要是枚舉和計數格式說明符。
也許你需要指定更多你的意圖是什麼。你爲什麼做這個?你需要使用正則表達式,還是你可以做一些字符串解析(例如找到並移除轉義字符)? – Derek
最終,目標是在'printf','sprintf','NSLog'等編寫一組方便的包裝函數,它們替換錯誤的說明符,處理objc對象描述格式等等。我可以手動迭代char數組,並標記格式字符串,但是正則表達式會使代碼更清晰。 – Elist
我在想手動迭代可能會變成更乾淨更好的選項。我不是一個正則表達式嚮導,但我沒事。如果它需要由正則表達式嚮導編寫,那麼它可能會讓事情比你想要的更復雜。 – Derek