我用xsd.exe
生成了xsd的dataModel。我想用通用列表=> dataType[]
交换List<dataType>
。我需要自动更改语法,因为dataModel类很大。
我的第一个意图是直接使用xsd.exe
生成正确的代码。经过一番调查,我发现这不是一个选择。
然后我尝试用Regex解决我的问题,但是我并不幸运找到正确的表达方式。可能有人可以帮助我。可以直接在Visual Studio中进行修改,或者如果在Notepad ++中无法进行修改,则可以进行修改。
我要做什么:
public dataType1[] dataType1 => public List<dataType1> dataType1
public dataType2[][] => public List<List<dataType2>>
public dataType3[][][] => public List<List<List<dataType3>>>
我在VS中使用Regex的方法:
// Find with:
(?<=\s)[A-Za-z_0-9]+(?=(\[\]){1})
// Replace with:
List<$&>
不幸的是,我的方法无法一步到位。另外,我必须将1到n []分开。最后,我必须删除所有[]并查找/替换可能导致错误的内容。
有人可以帮我解决一个问题吗?使用Regex或其他可能的东西。对我而言,重要的是一种可以在创建dataModel之后快速轻松地部署的解决方案。
答案 0 :(得分:1)
您可以使用nodepad ++宏解决此问题。
单击Start recording macro
按钮
按 Control + H 启动搜索并替换
查找内容:(?<=\s)([<>A-Za-z_0-9]+)\[\]
替换为:List<$1>
全部替换
在不关闭搜索对话框的情况下,单击查找下一个
单击Stop recording macro
按钮。
现在转到要处理的文件
单击Run a macro multiple times
按钮
选择Run until the end of file
运行
注意::录制宏后,可以“保存”该宏以供以后重用。保存后,它将在记事本++重新启动后可用。