C# 如何在使用Regex.split时忽略较长的单词?

C# 如何在使用Regex.split时忽略较长的单词?,c#,regex,text,C#,Regex,Text,我有这篇文章 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|POLYLI

我有这篇文章

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
到目前为止还不好
输出总是用GR-BODY分割的3个数组

使用
^
特殊字符:

tmp[0] = "BODY"
tmp[1] = "bodyattrib\mybody\nGR-BODY\nattrib\n123"
^
表示
字符串或行的开头

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

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);
另一个有用的特殊字符是
$
表示
字符串或行的结尾。你可以把你的单词放在下面,以确保这些单词排成一行


请注意,
^
$
取决于
多行
选项。

您需要发布更多代码。问题是在
GR-BODY
中也有boundry这个词。当您希望输出包含拆分分隔符时,为什么要使用
split
\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