Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 用于文本分析的句子或编号列表是否检测_Objective C_Xcode_Cocoa Touch_Cocoa_Parsing - Fatal编程技术网

Objective c 用于文本分析的句子或编号列表是否检测

Objective c 用于文本分析的句子或编号列表是否检测,objective-c,xcode,cocoa-touch,cocoa,parsing,Objective C,Xcode,Cocoa Touch,Cocoa,Parsing,我试图解析文件中的一些文本 考虑以下文本文件: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo cons

我试图解析文件中的一些文本

考虑以下文本文件:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
1. Line 1
2. Line 2

+ Line 1
+ Line 2
+ Line 3
文本文件中有三段

首先是几句话。 第二个有一个句子和一个编号的列表。 第三个是简单的项目清单

我的问题是,在Objective-C中,我如何计算段落的组成,如果它只是句子,我将它们作为NSString返回,如果它是一个项目符号列表,我希望它们在NSArray中分开,如果段落是句子和编号列表的组合,我将它们作为NSString和NSArray的字典返回

有什么想法吗?我知道我可以使用正则表达式将它们分离为数组或字符串,但我不太知道如何检测并验证段落是否为:

  • 段落(句子)
  • 项目清单/编号清单
  • 列表和段落的组合
  • 我在阅读了一系列教程和关于正则表达式的问题后尝试了这个方法


    此表达式
    (?=\d*\s*[\.]?\s*)([a-z\s]+)
    会获取编号的列表,但它也会获取列表前面的文本。这就是我完全被卡住的地方。

    当我写这篇文章时,你有两张选票要结束,没有评论或答案,这并不奇怪。人们会问:他尝试了什么?算法在哪里?他做了什么研究?等等等等。你所问的不属于正常的SO范围

    从形式上讲,您拥有的是一种由语法定义的语言,您需要确定您的数据是否是该语言中的句子,如果是,则确定其组成部分,称为解析,通常涉及词汇和语法分析

    这可能是一个非常大的问题,但并非总是如此

    关于这个主题的文献很多,但作为一个相当随机的起点,我们来看看上面的一些术语的定义

    现在定义你的语法。什么是句子?什么是有编号的句子?(可能是一个数字点后接一个句子)什么是数字列表?(可能是一个或多个有编号的句子)等

    你的语法是第三类吗?如果是这样的话,你可以用正则表达式解析它,它们在Cocoa中是可用的

    如果不是类型3,则需要编写解析器或使用解析器生成器。这是一个很大的主题,但我怀疑您的语法会很简单,一个简单的即席或递归下降解析器就足够了。(事实上,我猜如果你的定义保持简单,你可以想出一个类型3语法。)

    如果你陷入困境,当你走得更远的时候,那么你也许可以在这个领域里多表达一个问题,这样会帮助你解决问题

    HTH.

    使用一个


    语法与您正在使用的语法非常相似,您不必学习编写自己的解析器。

    您确实是一个编写人员