使用模式选择在R中名称的任何部分都有XX的文件

使用模式选择在R中名称的任何部分都有XX的文件,r,list,file,pattern-matching,R,List,File,Pattern Matching,我有一个文件夹,里面的文件名如下,例如: [1] "./final_model_pre/pre_pe_ja_bc_wm.tif" "./final_model_pre/pre_pe_ja_bc_wm.tif.aux.xml" [3] "./final_model_pre/pre_pe_ja_bc_wm.tif.ovr" "./final_model_pre/pre_an_le_glm_wm.tif" [5] "./final_model_pre/

我有一个文件夹,里面的文件名如下,例如:

[1] "./final_model_pre/pre_pe_ja_bc_wm.tif"          "./final_model_pre/pre_pe_ja_bc_wm.tif.aux.xml" 
 [3] "./final_model_pre/pre_pe_ja_bc_wm.tif.ovr"      "./final_model_pre/pre_an_le_glm_wm.tif"        
 [5] "./final_model_pre/pre_an_le_glm_wm.tif.aux.xml" "./final_model_pre/pre_an_le_glm_wm.tif.ovr"    
 [7] "./final_model_pre/pre_an_bo_ma_wm.tif"          "./final_model_pre/pre_an_bo_ma_wm.tif.aux.xml" 
 [9] "./final_model_pre/pre_an_bo_ma_wm.tif.ovr"      "./final_model_pre/pre_pe_ja_mx_wm.tif"         
[11] "./final_model_pre/pre_pe_ja_mx_wm.tif.aux.xml"  "./final_model_pre/pre_pe_ja_mx_wm.tif.ovr"     
[13] "./final_model_pre/pre_pe_ja_rf1_wm.tif"         "./final_model_pre/pre_pe_ja_rf1_wm.tif.aux.xml"
[15] "./final_model_pre/pre_pe_ja_rf1_wm.tif.ovr"     "./final_model_pre/pre_pe_ja_svm_wm.tif"        
[17] "./final_model_pre/pre_pe_ja_svm_wm.tif.aux.xml" "./final_model_pre/pre_pe_ja_svm_wm.tif.ovr" 
我想列出名称中包含
“pe_ja”
且仅扩展名为
“.tif”
,而不是
”.tif.ovr“
”.tif.aux.xml“
或任何其他扩展名的所有文件。我正在尝试使用
list.files
函数,但无法正确使用
模式。你能帮我吗?
非常感谢。

附言:我用的是R.

你可以用正则表达式

files = list.files(pattern = '.*pe_ja.*\\.tif$')
正则表达式末尾的
$
表示该字符串已结束。
\.
是一个转义句点,表示要匹配句点(不是任何字符,这是
通常匹配的字符)


*
选择任意字符任意次数(包括0)

您可以使用正则表达式来实现这一点

files = list.files(pattern = '.*pe_ja.*\\.tif$')
正则表达式末尾的
$
表示该字符串已结束。
\.
是一个转义句点,表示要匹配句点(不是任何字符,这是
通常匹配的字符)


*
选择任意字符任意次数(包括0)

试试这个
files=list.files(pattern='.*pe\u ja..\.tif$)
注意,为了转义
你需要这个表达式
\.
而不是
\.
,这个表达式
\.
表示转义
\
字符,并匹配
之后的任何字符,新行除外
试试这个试试这个
files=list.files(pattern='.*pe\u ja.\.tif$)
注意,为了转义
你需要这个表达式
\.
而不是
\.
,这个表达式
\.
表示转义
\
字符,并匹配
之后的任何字符,新行除外
试试这个

你必须使用
\\\。
因为R首先将“\\”解释为“\”字符,因为“\”也是R的转义字符,然后“\”字符被传递到正则表达式引擎。你必须使用
\\。
因为R首先将“\\”解释为“\”字符,因为“\”也是R的转义字符,然后将“\”字符传递给正则表达式引擎。