问题描述
- c# regex.split返回的数组中总是有空字符串
-
有一个文本文档,结果类似:
A******
A1111111
A5555555
A6666666
在多行匹配的时候,希望把文本分割开,但是每次返回的数组的第一个值,总是空,代码如下:
Regex REA = new Regex("A.*",RegexOptions.Multiline);
string b=REA(text);
比如应该返回4个成员成员的数组,但是返回的数组是5个成员,b[0]是一个空值,后面的一切正常,这是什么问题?
-----补充------
之所以用多行匹配,实际上是因为文本很长,应该是
A1213131313131
464616511131213
A13165416546131
16541561351213
...
A1612316513
216213216541641513213
这样的格式,每一个单元的前面标志是一样的,但是后面是跨行的文本,A有没有不是很重要。把A.*改成A[.n]*之后,还是会返回一个空值。取得REA.length属性,得到的值,比实际值多1。
解决方案
var text=@"A1111111
A5555555
A6666666";
Regex REA = new Regex("(A.*)",RegexOptions.Singleline);
结果如下:
A1111111
A5555555
A6666666
解决方案二:
用 A[^n]+ 看看。
解决方案三:
督察厉害,,,,,,
时间: 2024-09-19 22:39:45