R 如何在换行时终止模式?

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 解决这个问题的最简单方法是使用非贪婪量词:即+?而不是+ 为了完整起见,我要提到的是,还有其他选择,但它

我有一个长字符,它来自我想要处理的pdf文件。 我有
表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