求一个分组正则

不訴離傷 2017-03-24 01:35:01
例如
            string str = @"  Analog IC
Sec No.:RTCP73
Wafer Lot No.:ACB478.1
CF 055505761N - 3
Ref.No.:RT9193 - 33GF(Z00).TR";


用如下:
  Regex regex = new Regex("[/\n/\r]+");
string[] subStr = regex.Split(str);


得到的前面都有空白(如下图),有没有办法直接取得不带空白行或者得到每行字符都可以自动trim掉前后空白的呢

...全文
629 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
不訴離傷 2017-03-29
  • 打赏
  • 举报
回复
引用 20 楼 xuzuning 的回复:
https://pan.baidu.com/s/1miJltpQ
非常感谢!
xuzuning 2017-03-28
  • 打赏
  • 举报
回复
不訴離傷 2017-03-28
  • 打赏
  • 举报
回复
引用 18 楼 xuzuning 的回复:
可以
这样没问题,非常感谢!顺便请问下,你这个正则表达式解析器,有下载的位置吗
xuzuning 2017-03-25
  • 打赏
  • 举报
回复
可以
crystal_lz 2017-03-24
  • 打赏
  • 举报
回复

@"^\s*(.*?)\s*$",RegexOptions.MutilLine
EnForGrass 2017-03-24
  • 打赏
  • 举报
回复
引用 6 楼 xieyijun1986 的回复:
[quote=引用 3 楼 Chinajiyong 的回复:] 如楼上可以

   string str = @"  Analog IC
          Sec No.:RTCP73
          Wafer Lot No.:ACB478.1
          CF  055505761N - 3
          Ref.No.:RT9193 - 33GF(Z00).TR";

            Regex regex = new Regex("\\s*[/\n/\r]+\\s*", RegexOptions.IgnorePatternWhitespace);
            string[] subStr = regex.Split(str.Trim());
谢谢,只差第一行取到的前面还有待空白符。[/quote] 没办法了,这已经是最简单了
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
结果的第一行前面有空白吗?
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 3 楼 Chinajiyong 的回复:
如楼上可以

   string str = @"  Analog IC
          Sec No.:RTCP73
          Wafer Lot No.:ACB478.1
          CF  055505761N - 3
          Ref.No.:RT9193 - 33GF(Z00).TR";

            Regex regex = new Regex("\\s*[/\n/\r]+\\s*", RegexOptions.IgnorePatternWhitespace);
            string[] subStr = regex.Split(str.Trim());
谢谢,只差第一行取到的前面还有待空白符。
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
            string str = @"  Analog IC
          Sec No.:RTCP73
          Wafer Lot No.:ACB478.1
          CF  055505761N - 3
          Ref.No.:RT9193 - 33GF(Z00).TR";
            Regex regex = new Regex(@"[\n\r]+\s*");
            string[] subStr = regex.Split(str.Trim());
当Sec No.:RTCP73这行后面还有空白符号时候无法去掉,还有第一行前面的空白有办法不取吗
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 16 楼 xuzuning 的回复:
你用的是 Regex.Split,如果前导的空格也作为分割符的话,势必会多出一个元素
谢谢喔,如果用match去捕获的话,这种方式可以吗
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
string[] subStr = regex.Split(str).Select(s=>s.Trim()).ToArray();
这样我知道,最近在认真学正则,想知道有没有办法一个正则就搞定了,不要再迭代去trim;
EnForGrass 2017-03-24
  • 打赏
  • 举报
回复
如楼上可以

   string str = @"  Analog IC
          Sec No.:RTCP73
          Wafer Lot No.:ACB478.1
          CF  055505761N - 3
          Ref.No.:RT9193 - 33GF(Z00).TR";

            Regex regex = new Regex("\\s*[/\n/\r]+\\s*", RegexOptions.IgnorePatternWhitespace);
            string[] subStr = regex.Split(str.Trim());
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
            string str = @"  Analog IC
Sec No.:RTCP73
Wafer Lot No.:ACB478.1
CF 055505761N - 3
Ref.No.:RT9193 - 33GF(Z00).TR";
Regex regex = new Regex(@"[\n\r]+\s*");
string[] subStr = regex.Split(str.Trim());
q107770540 2017-03-24
  • 打赏
  • 举报
回复
string[] subStr = regex.Split(str).Select(s=>s.Trim()).ToArray();
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
你用的是 Regex.Split,如果前导的空格也作为分割符的话,势必会多出一个元素
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 14 楼 xuzuning 的回复:
regex.Split(str.Trim()) 已经将两端的空格去除了,怎么还会有空格?
哈,谢谢啦,加trim是可以。如果有办法不用后面补一个trim,只要一条正则那当然最好^_^
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
regex.Split(str.Trim()) 已经将两端的空格去除了,怎么还会有空格?
xuzuning 2017-03-24
  • 打赏
  • 举报
回复
我给你的调试截图中能看到空格吗?
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 8 楼 Chinajiyong 的回复:
[quote=引用 6 楼 xieyijun1986 的回复:] [quote=引用 3 楼 Chinajiyong 的回复:] 如楼上可以

   string str = @"  Analog IC
          Sec No.:RTCP73
          Wafer Lot No.:ACB478.1
          CF  055505761N - 3
          Ref.No.:RT9193 - 33GF(Z00).TR";

            Regex regex = new Regex("\\s*[/\n/\r]+\\s*", RegexOptions.IgnorePatternWhitespace);
            string[] subStr = regex.Split(str.Trim());
谢谢,只差第一行取到的前面还有待空白符。[/quote] 没办法了,这已经是最简单了[/quote]谢谢喔,目前看起来只能这样。
不訴離傷 2017-03-24
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
结果的第一行前面有空白吗?
是的
加载更多回复(1)

110,536

社区成员

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

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

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