R 如何在换行时终止模式?
我有一个长字符,它来自我想要处理的pdf文件。 我有R 如何在换行时终止模式?,r,regex,text-processing,R,Regex,Text Processing,我有一个长字符,它来自我想要处理的pdf文件。 我有表X的重复实例。表的名称,在我的字符中总是后跟一个\r\n 但是,当我试图提取列表中的所有表时,使用list\u tables\s匹配所有空白,包括换行符!当与贪婪量词+组合时,这意味着(([A-z]|\\s))+匹配,在第一个示例中 Real GDP\r\n […] Percentage changes\r\n 解决这个问题的最简单方法是使用非贪婪量词:即+?而不是+ 为了完整起见,我要提到的是,还有其他选择,但它
表X的重复实例。表的名称
,在我的字符中总是后跟一个\r\n
但是,当我试图提取列表中的所有表时,使用
list\u tables\s
匹配所有空白,包括换行符!当与贪婪量词+
组合时,这意味着(([A-z]|\\s))+
匹配,在第一个示例中
Real GDP\r\n […] Percentage changes\r\n
解决这个问题的最简单方法是使用非贪婪量词:即+?
而不是+
为了完整起见,我要提到的是,还有其他选择,但它们会变得更复杂。例如,您可以使用否定断言包括一个“if”测试来匹配不是换行符的空白;或者您可以使用字符类[\t]
而不是\s
,后者限制性更强,但也更明确,可能更接近您想要的内容。如果您以可复制的格式包含一个简单的示例输入,可用于测试和验证可能的解决方案,则更容易帮助您。如果要匹配换行符,就不需要额外的斜杠。也许可以尝试str\u extract\u all(纯文本,“Table\\s++\\d++\.\\s+([A-z]\\\s))++\r\n”)
[A-z]
匹配的不仅仅是字母,看看ASCII表格,在z
和A
之间有一些特殊字符。谢谢你的工作<代码>[\t]
也可以使用。对于任何感兴趣的人来说,\t
是\s
的一个更严格的子集,如下所述:
Real GDP\r\n […] Percentage changes\r\n