2011-11-11 148 views
4

我有一个纯文本的Web响应,并需要提取文件名。 对于良好RegEx的任何建议?正则表达式提取文件名

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

的说明请参见各行,如果它包含()''文件名'然后只是'分割()'它与文件名=' –

回答

14

您可以使用此正则表达式来获取文件名

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

代码看起来像这样

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

什么将是正则表达式 内容处置:form-data; NAME = “文件”; filename = test_example.txt 即不带引号 – mohitum