2011-06-15 59 views
3

我在文档中有这样的文字:“50%”;当我运行这个函数时,它只返回“50”,然后返回“%”。我不知道它为什么会分裂50%...你能告诉我如何避免这种行为,以获得完整的单词“50%”,而不是“50”和“%”?如何避免拆分?

int astart = 0; 
int aend = Doc.Content.End; 

//docwords.Words = '50%' 
Range docwords = Doc.Range(ref astart, ref aend); 

foreach (Range word in docwords.Words) 
{ 
    // here first return "50" and after return "%" 
    String wordText = word.Text; 
} 
+1

缺少上下文,解释很差。你应该给多一些,并解释这个问题比较好。而且ignorechars从未使用过。 – 2011-06-15 23:15:52

+0

你从来不会使用'ignorechars' .. – 2011-06-15 23:17:08

+0

启动Word,输入“50%”,使用Ctrl + Shift +向右箭头选择一个单词,Yup,两个单词 – 2011-06-15 23:30:32

回答

1

我假设你正在使用Office10和Word API。基于这@理查德是正确的。单词被标点符号,空格或在行首或末尾处打破。

如果您想避免拆分,最好使用RegEx和Matches集合来选择您的单词。像Regex.Matches(Document.Text, @"[A-Za-z0-9]+")可能会有所帮助。 (并坚持要标点符号到方括号。

+0

他如何用RegEx表达式来编写这段代码,而不是迭代docwords.Words? – Jason 2011-06-16 01:54:08