我想从我通过webscrapping获取的大字符串填充数据表。我打算将大块文本分解为较小的比特,并使用特定的模式作为参考。从这些较小的位开始,我将创建将进入数据表的列的变量。
每个部分应该是这样的:
Each part was supposed to look like this:
SESSÃO ORDINÁRIA Nº 008 - 10/02/2015\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tPresente \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t---\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\thttp://www.camara.leg.br/sileg/Prop_Lista.asp?Sigla=PL&Numero=7735&Ano=2014\"> PL Nº 7735/2014\n\t\t\t\t\t\t\t\t\t - DVS - PRB - EMENDA Nº 193\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tSim \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t10/02/2015\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
只是为了让你能理解我要向你展示的模式,并且为了传递str_extract_all,大字符串继续如下所示:
特别会议编号009 - 02/10/2015 \ n ...
代码应该使用str_extract_all(html,“SESSÃO。*?(?=SESSÃO)”)(html是大字符串)提取两个“SESSÃO”之间的文本。但是,如果我使用的代码是这样的,R将返回一个空列表。
我知道换行符(\ n)导致了这个问题,因为我可以通过从主文本中删除\ n,将str_replace_all应用于html,并使用“\ n”作为模式,从而达到与上述类似的结果。 “”作为替代品。然后我调用了html1的结果,并用x = html1而不是x = html和相同模式运行str_extract。
所以我的问题是:我可以告诉str_extract_all忽略\ n?如果不是,我还有另一种方法可以处理这个问题吗?我不想删除\ n's,因为在进一步细化字符串的较小位时,它们可能会派上用场。
发布于 2018-05-29 17:21:17
没有示例数据,这没有经过测试,但我相信你需要的是
str_extract_all(html, regex("SESSÃO.*?(?=SESSÃO|$)", dotall = TRUE))
我添加|$
了它,以便它将检测数据中的最后一个组,但重点是包含dotall = TRUE
https://stackoverflow.com/questions/-100004585
复制相似问题