我正在导入一些具有多个string字段的记录,从旧数据库到新数据库.它看起来很慢,我怀疑是因为我这样做:
foreach (var oldObj in oldDB)
{
NewObject newObj = new NewObject();
newObj.Name = oldObj.Name.Trim().Replace('^', '?').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', '?').Replace('`', 'ž').Replace('}', '?')
.Replace('~', '?').Replace('{', 'š').Replace('\\', '?');
newObj.Surname = oldObj.Surname.Trim().Replace('^', '?').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', '?').Replace('`', 'ž').Replace('}', '?')
.Replace('~', '?').Replace('{', 'š').Replace('\\', '?');
newObj.Address = oldObj.Address.Trim().Replace('^', '?').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', '?').Replace('`', 'ž').Replace('}', '?')
.Replace('~', '?').Replace('{', 'š').Replace('\\', '?');
newObj.Note = oldObj.Note.Trim().Replace('^', '?').Replace('@', 'Ž').Replace('[', 'Š')
.Replace(']', '?').Replace('`', 'ž').Replace('}', '?')
.Replace('~', '?').Replace('{', 'š').Replace('\\', '?');
/*
... some processing ...
*/
}
Run Code Online (Sandbox Code Playgroud)
现在,我已经通过网络阅读了一些帖子和文章,我已经看到了很多不同的想法.有人说如果我做正则表达式会更好MatchEvaluator,有人说最好保留原样. …
我想要做的很简单,但我希望最有效率地做到这一点,最好使用php内置的fns.
$str = '1234';
echo replace_function(array('1','3'),array('3','1'),$str);
// output: 3214
Run Code Online (Sandbox Code Playgroud)
str_replace,preg_replace将导致1214,这意味着它将通过数组,替换匹配的字符串.我正在寻找一种同时"切换"这两个(或更多)字符串的解决方案.
有任何想法吗?