1
我想列出一個目錄中所有文件的開頭都帶有「xyz」,並且第一個下劃線後面有一個2。R - 正則表達式
例如,xyzfjd_2_34_1.png
,xyz-39_2dog.jpg
會起作用,而xyzdog_3_dog.png
不起作用。
我試圖
list.files(dir, pattern="^xyz*_2*");
這顯然是錯誤的,主要是因爲我甚至不知道我在做什麼...
我想列出一個目錄中所有文件的開頭都帶有「xyz」,並且第一個下劃線後面有一個2。R - 正則表達式
例如,xyzfjd_2_34_1.png
,xyz-39_2dog.jpg
會起作用,而xyzdog_3_dog.png
不起作用。
我試圖
list.files(dir, pattern="^xyz*_2*");
這顯然是錯誤的,主要是因爲我甚至不知道我在做什麼...
做文件名沒有下劃線的比賽?我假設不。
我想你是在解釋任何角色的*
。相反,.
是任何字符。 *
是「0次或更多次」。所以你的模式^xyz*_2*
可以匹配xy_
和xyzzzz_222
。它不會匹配xyz1_2
。
嘗試:文件名
xyz
[^_]*
字符的任意組合的 list.files(dir, pattern = "^xyz[^_]*_2")
^
開始就知道是不是_
(包括空字符串)_2
,下劃線其次是兩個。我不擔心名稱的其餘部分,因爲該模式只需要匹配部分文件名。