C# 去除字符串首尾字符或字符串
在做一个属性入库的功能,将Excel属性数据导入到图层要素当中,这里Excel和SDE数据库数据存在一个关联字段,通过关联字段值进行匹配属性入库。
在实际业务中,由于普查数据往往某些字段值比较复杂,在写入到图层中时用户可能做一些简化,例如一个要素编号为0532BH001,可能录入到图层中只录入BH001,这样就导致了图层要素和Excel文件关联字段的值并不一定是完全相等的,可能存在一定的匹配关系。
这里不考虑复杂的情况,只是考虑Excel中关联字段值是要素关联字段值加前缀、后缀或者前后缀都存在的情况。
因为是以Excel作为基准来循环的,构造好字段值后再图层中进行Query操作查找到相应的要素,所以不能通过在图层要素关联字段中取出字段值然后通过连接前后缀的方式来判断处理,只能通过对Excel中关联字段值进行截取的方式来处理。
根据这里的实际情况,格式比较固定,移除前缀、后缀函数如下所示:
1: ///<summary>
2: /// 移除前缀字符串
3: ///</summary>
4: ///<param name="val">原字符串</param>
5: ///<param name="str">前缀字符串</param>
6: ///<returns></returns>
7: private string GetRemovePrefixString(string val, string str)
8: {
9: string strRegex = @"^(" + str + ")";
10: return Regex.Replace(val, strRegex, "");
11: }
12: ///<summary>
13: /// 移除后缀字符串
14: ///</summary>
15: ///<param name="val">原字符串</param>
16: ///<param name="str">后缀字符串</param>
17: ///<returns></returns>
18: private string GetRemoveSuffixString(string val, string str)
19: {
20: string strRegex = @"(" + str + ")" + "$";
21: return Regex.Replace(val, strRegex, "");
22: }
延伸,如果对于字符串要求不如此严格,只是单纯的截取前后字符串,那么可以通过此种方式进行:
1: ///<summary>
2: /// 截前后字符串
3: ///</summary>
4: ///<param name="val">原字符串</param>
5: ///<param name="str">要截掉的字符串</param>
6: ///<param name="bAllStr">是否对整个字符串进行截取
7: ///如果为true则对整个字符串中匹配的进行截取
8: ///如果为false则只截取前缀或者后缀</param>
9: ///<returns></returns>
10: private string GetString(string val, string str, bool bAllStr)
11: {
12: return Regex.Replace(val, @"(^(" + str + ")" + (bAllStr ? "*" : "") + "|(" + str + ")" + (bAllStr ? "*" : "") + "$)", "");
13: }
如果是截取单个字符而不是字符串,可以通过TrimStart或者TrimEnd函数来处理:
1: /// <summary>
2: /// 截前后字符
3: /// </summary>
4: /// <param name="val">原字符串</param>
5: /// <param name="c">要截取的字符</param>
6: /// <returns></returns>
7: private string GetString(string val, char c)
8: {
9: return val.TrimStart(c).TrimEnd(c);
10: }
C# 去除字符串首尾字符或字符串的更多相关文章
- c语言指针字符串与字符数组字符串的区别
#include <stdio.h> int main() { //字符串常量,存放于内存常量区. //常量区区的内存具有缓存机制, //当不同指针指向的常量值相同时, //其实这些指针指 ...
- 字符类型char、字符串与字符数组、字符数组与数据数组区别
字符类型是以ASCII码值运算的:小写字母比相应的大写字母大32,其中A=65,a=97 Esc键 27(十进制).'\x1B'(十六进制).'\33'(八进制) 转义字符:\0 空字符 AS ...
- PHP只显示姓名首尾字符,隐藏中间字符并用*替换
//测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'& ...
- [c/c++] programming之路(22)、字符串(三)——字符串封装
项目结构 头文件.h #include<stdio.h> #include<stdlib.h> #include<string.h> //字符串封装,需要库函数 / ...
- JavaScript trim 实现(去除字符串首尾指定字符)
String.prototype.trim = function (char, type) { if (char) { if (type == 'left') { return this.replac ...
- JavaScript trim 实现去除字符串首尾指定字符的简单方法
String.prototype.trim = function (char, type) { if (char) { if (type == 'left') { return this.replac ...
- 【iOS】去除字符串首尾空格或某字符
在iOS的实际开发中,常会出现需要去除空格的情况,总结有三种情况: 去除字符串首尾连续字符(如空格): 去除字符串首部连续字符(如空格): 去除字符串尾部连续字符(如空格): 去除字符串首尾连续字符( ...
- 【Python实践-4】切片操作去除字符串首尾的空格
#利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法 def trim(s): while s[0:1]==' ': s=s[1:] while s[ ...
- C++ 去掉字符串首尾的 \x20 \r \n 字符
转载:http://www.sharejs.com/codes/cpp/5780 /* 去掉字符串首尾的 \x20 \r \n 字符 by sincoder */ void clean_string( ...
随机推荐
- /etc/passwd&/etc/shadow文件分析
/etc/passwd该目录存储的是操作系统用户信息,该文件为所有用户可见.给linux系统添加一个帐号:useradd -g mysql -d /home/test -m test(:新建一个用户t ...
- 浅尝辄止——使用ActiveX装载WPF控件
1 引言 使用VC编写的容器类编辑器,很多都可以挂接ActiveX控件,因为基于COM的ActiveX控件不仅封装性不错,还可以显示一些不错的界面图元. 但是随着技术不断的进步,已被抛弃的Active ...
- PHP中获取当前页面的完整URL
//获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; #localhost//获取网页地址 echo $_SERVER['PHP ...
- FreeMark学习(三)
沉淀的心 freemarker学习笔记--设计指导 <# ... > 中存放所有freemaker的内容,之外的内容全部原样输出.<@ ... /> 是函数调用两个定界 ...
- ajax和json对象
二维数组 首先是输出json字符串的php文件 header("Content-type: text/html; charset=utf-8"); //json设置utf-8 $a ...
- Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)
本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...
- 通过DIV+span方式模拟进度条的实现方法
上上周用FusionCharts做报表时,有个图是进度条的形式,其实在FusionCharts 3.0之后已经支持了(Linear Gauge),可惜现有系统用的还是1.2.3版本的,重新引入新版本有 ...
- Python自动化 【第十六篇】:JavaScript作用域和Dom收尾
本节内容: javascript作用域 DOM收尾 JavaScript作用域 JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走 ...
- js数组中去除重复对象及去除空对象的方法
(function(){//去除数组中重复对象 var unique = {}; arr.forEach(function(a){ unique[ JSON.stringify(a) ] = 1 }) ...
- shell 脚本 exit 1 报错:numeric argument required问题解决
原因是在window环境编辑会有特殊字符,解决办法:sed -i'' "s/\r//" file_name