首页 > 解决方案 > 正则表达式 - 最多 30 个字符,有限制

问题描述

我仍然没有找到解决我的正则表达式问题的方法。

案子:

输入-

Deutsche Gesellschaftsgeschichte

预期输出:

  1. 第 1 组 - 德意志银行
  2. 第 2 组 - Gesellschaftsgeschichte

原因是因为两个单词加起来超过 30 个字符,所以它们被分成两组。

最大输入可达 90 个字符。

更多输入和预期输出示例:

输入 -

Fachlich geeignet, politisch unzuverlässig...

输出 -

  1. Fachlich geeignet, politisch
  2. 解压...

输入 -

Textbuch zur Privatrechtsgeschichte der Neuzeit

输出 -

  1. 教科书
  2. 私法历史
  3. 纽泽特

标签: regex

解决方案


要在最多 3 个组中获得您想要的内容,您可以使用此正则表达式:

(\b.{1,30}(?=\b))(\b.{1,30}(?=\b))?(\b.{1,30}(?=\b))?

正则表达式以 a 开头Word boundary,然后匹配 from 1 to 30ofany字符,然后它期待 a Word boundary(确保我们匹配和拆分Whole Words)。

这种模式是repeated 3 times(最后两个是可选的)。

现在您的比赛分为 3 个组,您可以按索引访问这些组。


推荐阅读