【发布时间】:2018-12-03 20:24:19
【问题描述】:
我试图在每组正则表达式中用 32 个字符分割一个句子。如果第 32 个字符是单词中的字母,则句子在完整单词后拆分。当我的输入是一个带有“-”的句子时,它也会拆分该单词。
这是我正在使用的正则表达式
(\b.{1,32}\b\W?)
输入字符串:
Half Bone-in Spiral int with dark Packd Smithfield Half 带骨螺旋火腿配釉包
结果组:
- 半骨螺旋 int with
- dark Packd Smithfield 半骨-
- 带釉包装的螺旋火腿
在上面的拆分中,“Bone-in”是一个单词,但正则表达式会考虑单独的单词来拆分它。如何修改我的正则表达式以将“-”视为一个词?总之,我想要Bone-in之后的分裂。
谢谢。
【问题讨论】:
-
试试
(\b.{32,}?\b(?:-\w+)?\W*) -
上面的正则表达式忽略了句子的最后一部分,它没有 32 个字符
-
是的,但是当你用它拆分时(在大多数语言中),最后一部分仍然存在。
-
我在 java 中使用 Pattern 并且忽略了句子的最后一部分
-
那就试试
(\b.{1,32}(?![\w-])\W?)
标签: java regex string punctuation