怎么截取一段文字最后一个字后面的空格的所有内容?

o12345654321o 2015-07-03 08:46:35
个人信息里面有姓名,性别,年龄,单位等,如 单 位:矿机,我想截取冒号后面的所有内容,如果有空格就停止截取而且要截取最后一个字前面的字,如矿机后面的空格,回车就不要截取,因为文字的长短不确定,怎么截取啊,下面是代码:

string dw = "单 位:";
int dw_len = 4;
Regex r10 = new Regex(string.Format(@"(?<={0})([\s\S]{1})", dw, "{1," + dw_len + "}"));
string str10 = richTextBox6.Text;
string result10 = r10.Match(str10).Value;
string trim10 = Regex.Replace(result10, @"\s","");
textBox10.Text = trim10;

我想要把nl_len弄长一点,比如8或者10,因为单位的长度不一样,所以我想尽量让比较长文字也能显示出来,但是截取出来,后面都是点,怎么去除掉啊,因为文字完了就是空格,所以我想截取空格前面所有的文字,怎么样才能实现啊,有人知道吗?
...全文
496 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-07-03
  • 打赏
  • 举报
回复
引用 10 楼 smthgdin 的回复:
或者换个思路,如果是采用json呢,这样直接进行对象转换得到对象属性就行。
楼主是要从word文档里取字符串 word文档是用户编辑的,所以不能用json 我觉得楼主应该换个思路 固定一个excel格式,让用户给你标准格式的文档,然后你读取 而不是从毫无规律的word里获取信息
  • 打赏
  • 举报
回复
……要去掉的话那你取到的Value再Trim下
smthgdin_020 2015-07-03
  • 打赏
  • 举报
回复
或者换个思路,如果是采用json呢,这样直接进行对象转换得到对象属性就行。
於黾 2015-07-03
  • 打赏
  • 举报
回复
但是如果你截取的字符过多,空格之后还有别的文字,那么就不行了
o12345654321o 2015-07-03
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
string dw = @"单\s*位:";
Regex r10 = new Regex(string.Format(@"{0}([^\s]*?)(?=\s|$)", dw));

正则改成这样,然后取值取match.Group[1].Value



这个是我将dw_len改成20,出来的效果,代码在上面,我想把后面的.....去掉,因为我是打开word文件,获取在richtextbox里面,然后在用正则表达式,截取字符串显示在textbox上面,现在问题是因为读取的word文件不同,单位后面出现的文本也不同,所以我想尽量加大dw_len的长度,让他能读取不同word文档,让它能读取单位:后面的内容,且不要出现...,也就是到文本的最后一个字就结束,怎么做啊?
於黾 2015-07-03
  • 打赏
  • 举报
回复
string.TrimEnd();就是去掉最后多余的空格
o12345654321o 2015-07-03
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
放出你的测试用字符串,和想要得到的结果字符串
你放出的例子这么短,有什么可截取的

要么就把规则描述清楚,要么就放出测试字符串
你现在的描述根本就是前后矛盾的
既然是最后一个字符,怎么后面还会有字符




引用 4 楼 Z65443344 的回复:
放出你的测试用字符串,和想要得到的结果字符串
你放出的例子这么短,有什么可截取的

要么就把规则描述清楚,要么就放出测试字符串
你现在的描述根本就是前后矛盾的
既然是最后一个字符,怎么后面还会有字符




这个是我将dw_len改成20,出来的效果,代码在上面,我想把后面的.....去掉,因为我是打开word文件,获取在richtextbox里面,然后在用正则表达式,截取字符串显示在textbox上面,现在问题是因为读取的word文件不同,单位后面出现的文本也不同,所以我想尽量加大dw_len的长度,让他能读取不同word文档,让它能读取单位:后面的内容,且不要出现...,也就是到文本的最后一个字就结束,怎么做啊?
於黾 2015-07-03
  • 打赏
  • 举报
回复
如果你的数据库里有多余的空格 那么说明你用错了字段类型 设置为nvarchar2,而不是char,这样就不会有多余的空格了
於黾 2015-07-03
  • 打赏
  • 举报
回复
放出你的测试用字符串,和想要得到的结果字符串 你放出的例子这么短,有什么可截取的 要么就把规则描述清楚,要么就放出测试字符串 你现在的描述根本就是前后矛盾的 既然是最后一个字符,怎么后面还会有字符
O_OQAQ 2015-07-03
  • 打赏
  • 举报
回复
TrimEnd() 可以去掉后面的空格
  • 打赏
  • 举报
回复
string dw = @"单\s*位:";
Regex r10 = new Regex(string.Format(@"{0}([^\s]*?)(?=\s|$)", dw));
正则改成这样,然后取值取match.Group[1].Value
蝶恋花雨 2015-07-03
  • 打赏
  • 举报
回复
string dw = "单 位:"; =>split只要冒号后面的数据然后你在处理。 string dw = "单 位:".split(":")[1];

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧