在R

时间:2017-07-13 13:32:19

标签: r string pdf extract

R这里很新! 我需要提取出现在两个分隔符之间的字符串数据的某些部分(总是相同的2)。

在下面提供的示例中,分隔符(左=此声明不是规则的一部分,右= personne-ressource)出现两次,但在其他文件中,它们可能出现20次。

我想创建一个数据框,其中提取这两个分隔符之间的每个不同文本段并将其放入不同的行。

提前致谢

左分隔符:此声明不是规则的一部分

右分隔符:personne-ressource

文字示例:

监管影响分析声明 (此声明不是法规的一部分。)问题 根据引入的森林有害生物补偿条例(ifpcr)根据植物保护法(该法案)提交补偿申请的截止日期已经过期。这意味着受影响的土地所有者在密西沙加,安大略省和多伦多,安大略省等城市的监管区域内,他们收到了关于其财产上受影响的树木处置的通知,这是因为检测到亚洲长角牛甲虫的侵袭(非2013年8月的“原始森林害虫”没有资格获得赔偿。由于此前有害生物的侵袭,这些人在受其害影响的财产上树木遭受了类似的损失。不修改ifpcr也可能使根除这种入侵性有害生物的有害生物管理战略面临风险。 personne-的ressource 马塞尔道森 gestionnaire国家 保护区,保护区 végétaux 加拿大canadienne d'inspection des alments 59,长廊camelot 渥太华(安大略省) k1a 0y9 电话:613-773-7265 télécopieur:613-228-6626 courriel:marcel.dawson@inspection.gc.ca 联系 马塞尔道森 国家经理 林产品,植物保护司加拿大食品检验机构 59 camelot drive 渥太华,安大略省 k1a 0y9 电话:613-773-7265 传真:613-228-6626 电子邮件:marcel.dawson@inspection.gc.ca  (此声明不是法规的一部分。)问题 在过去的十年中,2c-苯乙胺和相关物质(即盐,衍生物,异构体和2c-苯乙胺的衍生物和异构体的盐)的娱乐性使用在北美和整个欧洲都在增加。这些物质被认为是设计药物,它们的生产速度很快,并且很容易在互联网和狂欢,夜总会和头部商店出售。 国际上已在媒体和科学期刊上报道了2c-苯乙胺和相关物质的非致命和致命影响。报告的不良反应包括寒战,恶心,焦虑,意识模糊, personne-的ressource 丹尼斯阿森诺 généraledelaantantéenvironnementaleet de la sécuritédesconsommateurs 加拿大圣地亚哥 immeuble principal de statistique canada 150,promenadeduprétunney 渥太华(安大略省) k1a 0t6 courriel:ocs_regulatorypolicy-bsc_

1 个答案:

答案 0 :(得分:0)

这个问题比它看起来更棘手。该解决方案首先将您的句子串分成单个句子的向量。然后,它使用str_match包中的stringr重复应用每个句子的正则表达式。这是我使用的正则表达式:

Hello.*?\\s+(.*?)[^\\w]?\\s+goodbye

这对你的数据和我测试的另一个句子的效果相当不错。无论如何,希望这个答案指向你正确的方向,即使你以后需要再次调整正则表达式。

require(stringr)

x <- as.character("Hello, my name is mat and I suck with R, goodbye. Hello, my name is Hector and I'm pretty good with R, goodbye.  Hello stuff goodbye.")
result <- str_match(unlist(strsplit(x, "\\.")), "Hello.*?\\s+(.*?)[^\\w]?\\s+goodbye")[, 2]
result

[1] "my name is mat and I suck with R"            
[2] "my name is Hector and I'm pretty good with R"
[3] "stuff"

在这里演示:

Rextester