【问题标题】:Splitting a string after max X characters and preserve whole words在最大 X 个字符后拆分字符串并保留整个单词
【发布时间】:2013-07-03 10:08:27
【问题描述】:

我想像example 一样使用正则表达式拆分字符串, 但就我而言,我希望换行中的每个单词超过 X 个字符。

所以下面的代码不能解决问题,因为它会找到至少 X 个非换行符(而不是最大 X)的每个实例。

s = s.replaceAll("(.{" + x + ",}?)\\s+", "$1\n");

我可以使用其他方法轻松完成此操作,但我想使用 REGEX 完成此操作

【问题讨论】:

  • 您是否尝试过:(.{0, " + x + "})
  • 试过了,但在某些场景下不起作用

标签: java regex split


【解决方案1】:

试试这个:

s = s.replaceAll("(.{0,"+ x+"})\\b", "$1\n");

或修剪后的版本,

s = s.replaceAll("(?:\\s*)(.{1,"+ x +"})(?:\\s+|\\s*$)", "$1\n")

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多