Sisual Studio 正则表达 替换代码

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:55:59
用正则表达式 批量 替换以下代码
txt_手续姓名.Text = ds_处理.dt_处理票[0].手续人姓名;
txt_工资.Text = ds_移交人.M_移交者[0].新移交者工资.ToString("###,###,##0");

到这种形式
txt_手续姓名.Text = (ds_处理.dt_处理票[0].Is手续人姓名Null() ? string.Empty : ds_处理.dt_处理票[0].手续人姓名);
txt_工资.Text = (ds_移交人.M_移交者[0].Is新移交者工资Null() ? string.Empty : ds_移交人.M_移交者[0].新移交这工资.ToString

("###,###,##0"));

注意:
有的行结尾有 ToString("###,###,##0")) 等格式化 活类型转换有的没有

不知道你想转换的方式是怎么样的?直接在菜单栏上查找替换?如果是这样,那可能在功能上会受很大限制,以下是自己写的一个在Javascript中匹配的情况,可以实现;可以再根据自己的情况再修改下看看,如果实在不行,你再把问题补充描述清楚:

<script type="text/javascript">
//<![CDATA[
function reHandle(s, re){
re.test(s);
var temp = s.replace(re, function(s){
return RegExp.$1 +" = (" + RegExp.$2 + "Is" + RegExp.$3 +"Null() ? string.Empty : " + RegExp.$2 + RegExp.$3 + RegExp.$4 + ");"
})
return temp
}
var s1 = "txt_手续姓名.Text = ds_处理.dt_处理票[0].手续人姓名;";
var s2 = 'txt_工资.Text = ds_移交人.M_移交者[0].新移交者工资.ToString("###,###,##0");';
var re = /^(txt_.+?\.Text) = (ds_.+?\..+?\[0\]\.)(.+?)(\.ToString\(.+?\))?;?$/;

alert(reHandle(s1, re));
alert(reHandle(s2, re));
//]]>
</script>