NSRegularExpression为模式提供不正确的匹配

时间:2016-07-15 07:56:00

标签: ios objective-c swift nsregularexpression

Goal:字符串的多个拆分,每个必须有50个字符。如果我能通过适当的自动换行来做到这一点真的很棒。将最后一次拆分设置为小于50个字符是可以的。

我正在使用此方法将String拆分为多个部分。我已经使用了正则表达式,如下所示。

                           "\\G\\s*(.{1,50})(?=\\s|$)"

并使用此NSURLRegularExpression查找相应的拆分。

extension String {

   func getSplits()
   {
     let pattern = try? NSRegularExpression(pattern: "\\G\\s*(.{1,50})(?=\\s|$)", options: NSRegularExpressionOptions.DotMatchesLineSeparators)

        if let matches = pattern?.matchesInString(self, options: NSMatchingOptions.ReportCompletion , range: NSMakeRange(0, self.characters.count)) as [NSTextCheckingResult]?
        {
            for (index, result) in matches.enumerate()
            {
                // Statements
            }
        }
    }
}

但问题在于,每当我放置English文本时,它都会返回正确的分割。但每当我放置English以外的文本时,它似乎显示不正确的分割。因为每个分裂必须有50个字符对吗?但输出中的字符数有时为510some random number。随意分裂,我有疑问?是否与\n字符或\r有关?不对吗?

我尝试了NSRegularExpressionOptionsNSMatchingOptions的所有选项类型。甚至没有选择,但同样的事情发生了。

如果您正在测试,此字符串将为您提供帮助,请使用此Malayalam Language文字进行测试 - >

കുളച്ചല്‍ തുറമുഖം നിര്‍മ്മിക്കാനുള്ള നീക്കം യുക്തിരഹിത പദ്ധതിയെന്നാണ് മുഖ്യമന്ത്രി പിണറായി വിജയന്‍ മറുപടി നല്‍കിയത്. പ്രധാനമന്ത്രിയെ നേരില്‍ കണ്ട് ഇക്...
പൊതുജനങ്ങളുടെ നികുതിപ്പണം യുക്തിരഹിതമായി ഉപയോഗിക്കുന്നതിനുള്ള തെളിവാണ് കുളച്ചല്‍. 1000 ദിവസം കൊണ്ട് മുന്‍നിശ്ചയപ്രകാരം പദ്ധതി പൂര്‍ത്തിയാക്കും. തുറമുഖ...

你对此有什么想法吗?

0 个答案:

没有答案