【发布时间】:2011-10-02 11:35:11
【问题描述】:
我被一个正则表达式困住了一段时间:
- 用这个分割我的句子:“[\W+]”
-
但如果它找到这样的词:“aaa-aa”(不是“aaa - aa”或“aaa--aaa-aa”),则该词不是拆分,而是整个词。
基本上,我想为每个单词拆分一个句子,但还要考虑“aaa-aa”是一个单词。我通过创建两个单独的函数成功地做到了这一点,一个用于与 \w 分割,另一个用于查找诸如“aaa-aa”之类的单词。最后,我将两者相加,并减去每个复合词。
例如,句子:
“你好,我叫理查德”
首先我收集{你好,我的名字,是,理查德} 然后我收集{我的名字} 然后我将 {my-name} 添加到 {Hello, my, name, is, Richard} 然后我在这里取出 {my} 和 {name} {Hello, my, name, is, Richard}。 结果:{你好,我的名字,是理查德}
这种方法可以满足我的需要,但是对于解析大文件,这变得太重了,因为对于每个句子都需要太多的副本。所以我的问题是,我可以做些什么来将所有内容都包含在一个模式中?喜欢:
"使用这种模式 "[\W+] 分割文本,但是如果你找到一个像 "aaa-aa" 这样的词,请认为它是一个词而不是两个词。
【问题讨论】: