java String split + patterns

时间:2011-10-01 18:50:18

标签: java string split design-patterns

我正在使用此方法分割一些文字:

String[] parts = sentence.split("[,\\s\\-:\\?\\!\\«\\»\\'\\´\\`\\\"\\.\\\\\\/]");

将根据指定的符号拆分文本。其中一个符号是“ - ”,因为我的文字有这样奇怪的东西:“-------------- words --- words2 --words3 - words4”。这将符合我的需要,因为它不会像这样划分(如果我不添加“ - ”):“--- words3 --- words4(如果我不添加” - 这将被视为一个单词)。

但是有一件棘手的事情。我想允许这样的话:“aaa-bbb”,这是通过这种模式验证的:

Pattern pattern = Pattern.compile("(?<![A-Za-z-])[A-Za-z]+-[A-Za-z]+(?![A-Za-z-])");

允许:aaa-bb,aaa-bbbbbbb 不允许:aaa - bb,aa - bbb-cc

所以我的问题是,是否可以应用上面的分割来分割我的文本,但是也考虑这个模式是一个单词分隔符(对于像aaa-bbb这样的单词)?

谢谢你的进步, 理查德

1 个答案:

答案 0 :(得分:0)

从我收集到的内容之后,您将完成以下任务:

String[] parts = sentence.split(/[\-]{2,}/);