为什么我的有效正则表达式模式没有';我不能在R工作

为什么我的有效正则表达式模式没有';我不能在R工作,r,regex,R,Regex,我想从与特定模式匹配的文件夹中导入文件: 它必须包含“所有收件人”和 它需要是一个“.csv”文件 例如文件:“AllRecipients_XYZ324_S_test.csv” 使用在线正则表达式测试程序,以下模式可以正常工作: ^(?=.*AllRecipients)(?=.*csv).*$ 但是,在R中,我得到了以下错误: invalid 'pattern' regular expression 这是脚本中的完整行: temp = list.files(path="..", patter

我想从与特定模式匹配的文件夹中导入文件:

  • 它必须包含“所有收件人”和
  • 它需要是一个“.csv”文件
  • 例如文件:“AllRecipients_XYZ324_S_test.csv”

    使用在线正则表达式测试程序,以下模式可以正常工作:

    ^(?=.*AllRecipients)(?=.*csv).*$
    
    但是,在R中,我得到了以下错误:

    invalid 'pattern' regular expression
    
    这是脚本中的完整行:

    temp = list.files(path="..", pattern="^(?=.*AllRecipients)(?=.*csv).*$", full.names = TRUE)
    

    你知道为什么这在R中不起作用吗?

    列表。文件
    模式参数使用,所以lookahead不可用

    但这并不是一个真正的问题,因为你根本不需要长相:

    list.files(path="..", pattern="AllRecipients.*\\.csv$", full.names = TRUE)
    

    还请注意,您的原始模式是错误的,因为即使csv不在文件名的末尾,它也会匹配。

    请尝试更简单的模式
    pattern=“.*AllRecipients.*csv$”
    我相信您的做法很复杂:
    pattern=“AllRecipients.\\\.csv$”