java 字符串分割+模式

标签 java string split design-patterns

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

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

这将根据指定的符号分割文本。其中一个符号是“-”,因为我的文本有这样奇怪的东西:“----------------单词---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-bbbbbbbb 不允许:aaa--bb、aa--bbb-cc

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

提前致谢, 理查德

最佳答案

据我所知,您正在追求以下内容:

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

关于java 字符串分割+模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622250/

相关文章:

java - protected 对象是什么意思?

Java 代码显示错误 : "inner class can' t be public"?

javascript - 将给定字符串转换为 Json 对象 Javascript

python - 从split()获取最少数量的元素

excel - 在 Excel 单元格的最后一个 '.' 之后添加字符串

java - 使用接收 List<Project> 的 Web 服务在 Java 中填充 JTable

java - 设置 setSkipFirstHeader(true) 时,iText 5.5.3 PdfPTable.keepRowsTogether() 无法按预期工作

Java - 从文本文件创建字符串数组

C++、字符串和指针

javascript - 提示输入 5 个单词,然后显示最长的单词 javascript