Using this example excerpt:
The /character/ "_" (underscore/under-strike) can be /used/ in /variable/ names /in/ many /programming/ /languages/, while the /character/ "/" (slash/stroke/solidus) is typically not allowed.
......这种表述与在和之后没有<条码>的“英文”“词”的典型概念”相匹配。
([w ]+)(?<=(?<!/)1|1(?!/))
......也是最纯形式,只使用一个特性类别来界定“词”性质。 例子如下:
Matched Not Matched
------------- -------------
The character
_ used
underscore variable
under in
strike programming
can languages
be character
in stroke
names
many
while
the
slash
solidus
is
typically
not
allowed
如果排除<代码>/stroke/,则不希望添加“极限限制”的比值,则视你如何界定“最大”一词的开头:
([w ]+)(?<=(?<!/)1|1(?!/([^w]))).
。 这将将stroke
从“Notequied”移至上文“Matled”清单。
note:w
对上或下级信函、编号和强调性<>
如果您想从上述“序号”中改变您的“词”概念,就简单地交换了载于<代码>[w]的部分表达方式,如<代码>[a-zA-Z],以排除数字或<代码>[w -],以包括hy子,其中将捕获作为单一比照,而不是两个单独的对应体:
([w -]+)(?<=(?<!/)1|1(?!/([^w])))
<IMPORTANT ALTERNATIVE!
我只是想到的是Matching <>/em> >上任何“re not则填上/
的符号:简单明了consume。 <<>are>/em>上的所有符号和词(分录)。 这有几个好处:没有四舍五入就意味着可以在更多的情况下使用(Javagust不支持眼光,有些小lav不支持统统统统统统统统统统统统),同时提高效率;此外,使用一种分裂的表达方式意味着一种强力阵列的直接结果:
string input = "The /character/ "_" (underscore/under-strike) can be..."; //etc...
string[] resultsArray = Regex.Split(input, @"([^w -]+?(/[w]+/)?)+");
voila!