-1
string[] tmp = Regex.Split(originalString, @"\b(3DFACE|3DSOLID|ACAD_PROXY_ENTITIY|ARC|ATTDEF|ATTRIB|BODY|CIRCLE|DIMENSION|ELLIPSE|HATCH|HELIX|IMAGE|INSERT|LEADER|LIGHT|LWPOLYLINE|MLINE|MLEADERSTYLE|MLEADER|MTEXT|OLEFRAME|OLE2FRAME|POINT|POLYLINE|RAY|REGION|SEQEND|SHAPE|SOLID|SPLINE|SUN|SURFACE|TABLE|TEXT|TOLERANCE|TRACE|UNDERLAY|VERTEX|VIEWPORT|WIPEOUT|XLINE|LINE)\b", RegexOptions.None);

我有这个文本

BODY
bodyattrib
mybody
GR-BODY
attrib
123

我希望输出是这样的

tmp[0] = "BODY"
tmp[1] = "bodyattrib\mybody\nGR-BODY\nattrib\n123"

到目前为止不好,输出总是用 GR-BODY 分割的 3 个数组

4

1 回答 1

0

使用^特殊字符:

string[] tmp = Regex.Split(originalString, @"\b(3DFACE|3DSOLID|ACAD_PROXY_ENTITIY|ARC|ATTDEF|ATTRIB|^BODY|CIRCLE|DIMENSION|ELLIPSE|HATCH|HELIX|IMAGE|INSERT|LEADER|LIGHT|LWPOLYLINE|MLINE|MLEADERSTYLE|MLEADER|MTEXT|OLEFRAME|OLE2FRAME|POINT|POLYLINE|RAY|REGION|SEQEND|SHAPE|SOLID|SPLINE|SUN|SURFACE|TABLE|TEXT|TOLERANCE|TRACE|UNDERLAY|VERTEX|VIEWPORT|WIPEOUT|XLINE|LINE)\b", RegexOptions.None);

^意味着beginning of string or line

如果您喜欢将此应用于所有单词,请使用^您喜欢的任何单词:

\b(^3DFACE|^3DSOLID|^ACAD_PROXY_ENTITIY|^ARC|^ATTDEF|^ATTRIB|^BODY|^CIRCLE|^DIMENSION|^ELLIPSE|^HATCH|^HELIX|^IMAGE|^INSERT|^LEADER|^LIGHT|^LWPOLYLINE|^MLINE|^MLEADERSTYLE|^MLEADER|^MTEXT|^OLEFRAME|^OLE2FRAME|^POINT|^POLYLINE|^RAY|^REGION|^SEQEND|^SHAPE|^SOLID|^SPLINE|^SUN|^SURFACE|^TABLE|^TEXT|^TOLERANCE|^TRACE|^UNDERLAY|^VERTEX|^VIEWPORT|^WIPEOUT|^XLINE|^LINE)\b

其他有用的特殊字符是$手段end of string or line。你可以把你的词括起来,以确保这些词排成一行。

请注意,这^取决于$选项Multiline

于 2012-07-10T08:41:29.217 回答