我期待重構大量的類。將接口添加到具有特定命名模式的所有類
所有類都遵循命名約定
class SomethingModel
我想找到他們,並與
class SomethingModel : IModel
取代他們,但我也想排除一些模板派生我有一個看起來像
class SomethingController : GenController<SomethingModel>
我想在Visual Studio中做到這一點。
最明顯的選擇是正則表達式查找和替換,但我也有ReSharper的和理想的情況下我會使用模式搜索做替換
通過對正則表達式的問題,一些搜索我已經拿到了第一部分工作
(?<=class)(.*Model)
但我似乎無法排除該模板。我開始與
(class .*Model)(?!"(?<="Generic"))
打我很少使用正則表達式,如果有一個無正則表達式解決方案,我會更喜歡它。特別是我很喜歡用ReSharper的搜索與模式
這點我嘗試用下面的: 從我的所有類真正行之有效....除了成爲空...語句標籤似乎不工作(設置爲inifinite)
UPDATE
陽性病例:
- 公共類DoorModel
- 公共類HandleModel
- 公共類BellModel
陰性病例
- 公共類DoorController:GenericController
- 公共類WindowModel:IModel
特殊情況對我來說很清楚。你想匹配所有以「Model」結尾的類,它們尚未實現接口或從某個類繼承?也許正面比賽和不應該匹配的東西將是有幫助的 – nozzleman
好主意!但我不認爲有類型成員的佔位符 - 語句佔位符與類型成員的內容相匹配,但我們沒有任何要匹配的類型成員本身。 – citizenmatt
@nozzleman增加了負面和正面名單 – chrispepper1989