使用正则表达式,我同时使用正则表达式陷入了一个问题。 我的要求是:拆分长串入的125个字母的最大尺寸,然后插入一行打破它们之间。 分裂时,它不应该在单词之间分裂。简而言之,我想将字符串拆分为长度为125的小字符串或125字母之前的单词末尾。希望我没有困惑模式错误而在Java
我用一个正则表达式来解决这个问题,相信我是在这样的一个绝对零度。 我刚刚得到一个代码,并复制粘贴;-)
StringBuffer result = null;
while(mailBody.trim().length() > 0){
Matcher m = Pattern.compile("^.{0,125}\\b").matcher(mailBody);
m.find();
String oneLineString = m.group(0);
if(result == null)
result = new StringBuffer(oneLineString);
else
result.append("\n"+ oneLineString);
mailBody = mailBody.substring(oneLineString.length(),
mailBody.length()).trim();
}
这是我的代码,除非开始串上了一个句号结束它的正常使用()。 在这种情况下,它会发出如下错误:未找到匹配项。
请帮忙。
问候, Anoop的pk
嗨巴迪, 完美!现在错误消失了。但另一个概念来了,最后一个句号即将进入下一行。甚至没有完全停止,因为最后一个字符或一系列这样的字符在新行中出现的任何特殊字符 – Anoop 2009-12-11 06:43:48
扩展了函数以更好地处理短字符串和有问题的字符串。在第一个匹配中添加了否定性前瞻断言,以避免在句子结束标点符号处出现断裂,并在情况下只有一个长度超过125个字符的文本块时使用后退功能。此外,使最小匹配距离为1,而不是0,以避免出现像125个字符之后的字符串等问题。 – 2009-12-12 06:24:07