使用模式匹配選擇文件
選擇文件時,一個共同的要求是僅從文件夾中讀取特定文件。
例如,如果您正在處理日誌,則可能需要從特定月份讀取文件。您可以使用Glob模式與單個表達式匹配多個文件。
本文使用示例模式向您展示如何從示例列表中讀取特定文件。
示例文件
假設以下文件位於根文件夾中。
//root/1999.txt//root/2000.txt//root/2001.txt//root/2002.txt//root/2003.txt//root/2004.txt//root/2005.txt//root/2020/04.txt//root/2020/05.txt
球模式
問號
?
- 問號與一個字符匹配。這是一張僅限於更換單個角色的通配符。
此示例匹配來自根文件夾的所有文件,除了1999.TXT
。它不會搜索2020文件夾的內容。
展示((火花。讀。格式((“文本”)。加載((“ //root/200?.txt”))
角色類
[AB]
- 字符類與集合中的一個字符匹配。它由您要在一組括號內匹配的字符表示。
此示例將所有文件與2或3匹配,代替匹配的字符。它返回2002.TXT
和2003.TXT
從示例文件。
展示((火花。讀。格式((“文本”)。加載((“ //root/200 [23] .txt”))
否定的角色類
[^ab]
- 被否定的字符類與不在集合中的單個字符匹配。它由要在一組括號內排除的字符表示。
此示例匹配除具有2或3代替匹配字符的所有文件。它返回2000.txt
,,,,2001.txt
,,,,2004.TXT
, 和2005.TXT
從示例文件。
展示((火花。讀。格式((“文本”)。加載((“ //root/200 [^23] .txt”))
角色範圍
[A-B]
- 字符類在值範圍內與單個字符匹配。它由您要在一組括號內匹配的字符範圍表示。
此示例將所有文件與搜索範圍內的字符匹配,以代替匹配的字符。它返回2002.TXT
,,,,2003.TXT
,,,,2004.TXT
, 和2005.TXT
從示例文件。
展示((火花。讀。格式((“文本”)。加載((“ //root/200 [2-5] .txt”))