2011-11-11 8 views
4

私はプレーンテキストのWebレスポンスを得ており、ファイル名を抽出する必要があります。 良い正規表現の提案はありますか?ファイル名を抽出する正規表現

Total parts : 1 
Name : file 
Content Type : text/plain 
Size : 1167 
content-type : text/plain 
content-disposition : form-data; name="file"; filename="test_example.txt" 
+0

のようになります。ファイル名

(?<=filename=").*?(?=") 

を取得するには、この正規表現を使用することができますそれは 'filename'を含んでおり、'ファイル名= ' –

答えて

14

あなたはコードがあれば、それぞれの行を参照してください。正規表現のこの

String fileName = null; 
Pattern regex = Pattern.compile("(?<=filename=\").*?(?=\")"); 
Matcher regexMatcher = regex.matcher(requestHeaderString); 
if (regexMatcher.find()) { 
    fileName = regexMatcher.group(); 
} 

説明

(?<=    # Assert that the regex below can be matched, with the match ending at this position (positive lookbehind) 
    filename="  # Match the characters “filename="” literally 
) 
.    # Match any single character that is not a line break character 
    *?    # Between zero and unlimited times, as few times as possible, expanding as needed (lazy) 
(?=    # Assert that the regex below can be matched, starting at this position (positive lookahead) 
    "    # Match the character “"” literally 
) 
+0

と' split() 'だけします。 コンテンツの配置:form-data; name = "file"; filename = test_example.txt 引用符を付けない – mohitum