java - 在 Java 中使用正则表达式分割文本

标签 java regex split

我需要在Java中使用正则表达式分割文本(每个子字符串将小于或接近10个字符(包括空格和特殊字符),并且不会分割任何单词)。例如,“詹姆斯出去吃饭了。”会是“詹姆斯已经”、“出去了”、“吃饭”、“.”。 提前致谢。

最佳答案

这个表达式可能有点复杂,也许我们可以从以下开始:

.{1,10}[^\s](?=\s|$)

DEMO

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = ".{1,10}[^\\s](?=\\s|$)";
final String string = "James has gone out for a meal.";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}

正则表达式电路

jex.im可视化正则表达式:

enter image description here

关于java - 在 Java 中使用正则表达式分割文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352781/

相关文章:

java - org.hibernate.service.UnknownServiceException : Unknown service requested [org. hibernate.ogm.service.impl.OgmConfigurationService]

java - 如何从java翻译网页?

java - 无法在 Java 子类中访问 Parent Kotlin 类的 protected 成员变量

java - html 中搜索的正则表达式

javascript - 未在 JSFiddle 中执行的 jQuery 代码

java - 如何获取 "-"(破折号)前后的文本

mysql - 如何在 php 中从 mysql 查询中拆分值

java - 分割先前从文件中读取的字节数组

Gson引起的java.lang.NoClassDefFoundError

java - 如何使用 Java 或正则表达式删除字符串中连字符前后的空格?