我有一个文件夹,其中包含名称如下的文件,例如:
[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
函数,但我无法正确使用pattern
agrument。你能帮帮我吗?
谢谢!
P.S。:我正在使用R。
答案 0 :(得分:2)
您可以使用正则表达式。
dist_string
-------------
0987ghasdf7
4r5thgffghk
2qrt75434th
9uh7ygwedf6
正则表达式末尾的files = list.files(pattern = '.*pe_ja.*\\.tif$')
表示这是字符串的结尾。 $
是一个转义期,表示您要匹配句点(不是任何字符,\\.
通常匹配的字符。)
.
任意次数(包括0)选择任何字符。
答案 1 :(得分:1)
试试这一句files = list.files(pattern = '.*pe_ja.*\.tif$')
请注意,为了逃避.
您需要此表达式\.
而不是\\.
,此表达式\\.
表示转义\
字符并匹配.
之后除新行之外的任何字符
试试这个Regex101 test file names