[英]Java Regex search two file names
我需要Java正則表達式一些幫助。
我有兩個文件:
file_201111.txt.gz
file_2_201111.txt.gz
我需要一個正則表達式來搜索這兩個文件。
如果我使用file_[0-9]+.txt.gz
,則得到第一個文件;如果我使用file_[0-9]_[0-9]+.txt.gz
,則得到第二個文件。
如何結合兩種搜索模式來搜索兩個文件?
謝謝
由於您尚未為所有文件指定實際格式,因此我將為您提供幾個正則表達式,您可以使用最符合您需求的格式。
這匹配任意數量的_
和數字。
file[_\d]+\.txt\.gz
對於所有討厭的人 ,是的,它將匹配file_.txt.gz
,因此為防止您可以使用file(?:_\\d+)+\\.txt\\.gz
來代替。
這匹配_number
模式中的一兩個,其中number
表示任何數字(1+個數字)。
請參閱此處使用的正則表達式 :以下兩種模式可以完成相同的操作。
file(?:_\d+){1,2}\.txt\.gz
file_\d+(?:_\d+)?\.txt\.gz
file
逐字匹配 [_\\d]+
匹配集合中任何一個或多個字符( _
或數字) \\.txt\\.gz
從字面上進行匹配(請注意, \\.
與文字點字符相匹配.
) file
逐字匹配 (?:_\\d+){1,2}
匹配_\\d+
(下划線后跟一位或多位數字)一次或兩次
_\\d+(?:_\\d+)?
基本相同。 \\.txt\\.gz
從字面上進行匹配(請注意\\.
匹配一個litearl點字符.
) 您必須指出可選單元是可選的?
。 並且由於它是一個多字符單元,因此應將其與()
分組。 嘗試這個:
file(_[0-9])?_[0-9]+\\.txt\\.gz
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.