regex - 正则表达式 - 最多 30 个字符,有限制
问题描述
我仍然没有找到解决我的正则表达式问题的方法。
案子:
输入-
Deutsche Gesellschaftsgeschichte
预期输出:
- 第 1 组 - 德意志银行
- 第 2 组 - Gesellschaftsgeschichte
原因是因为两个单词加起来超过 30 个字符,所以它们被分成两组。
最大输入可达 90 个字符。
更多输入和预期输出示例:
输入 -
Fachlich geeignet, politisch unzuverlässig...
输出 -
- Fachlich geeignet, politisch
- 解压...
输入 -
Textbuch zur Privatrechtsgeschichte der Neuzeit
输出 -
- 教科书
- 私法历史
- 纽泽特
解决方案
要在最多 3 个组中获得您想要的内容,您可以使用此正则表达式:
(\b.{1,30}(?=\b))(\b.{1,30}(?=\b))?(\b.{1,30}(?=\b))?
正则表达式以 a 开头Word boundary
,然后匹配 from 1 to 30
ofany
字符,然后它期待 a Word boundary
(确保我们匹配和拆分Whole Words
)。
这种模式是repeated 3 times
(最后两个是可选的)。
现在您的比赛分为 3 个组,您可以按索引访问这些组。