[英]Regular expression extract filename from line content
我對正則表達式非常陌生。 我要提取以下字符串“ 109_Admin_RegistrationResponse_20130103.txt”
從此文件內容中,按行選擇內容:
13年1月10日10:44 AM 47 107_Admin_RegistrationDetail_20130111.txt
13年1月10日10:40 AM 11 107_Admin_RegistrationResponse_20130111.txt
正則表達式不應選擇第二行,只有第一行應返回true。
您的Regex有很多不同的錯誤...
^
[a-zA-Z]
缺少+
,因此只能匹配單個字符 _
,因此與Admin_RegistrationResponse
不匹配 \\
和d{2}
僅匹配dd
。 .
也可以,也可以匹配123_abc_12345678atxt
(請注意txt
之前的a
) 您的正則表達式應為
\\d+_[a-zA-Z_]+_\\d{4}\\d{2}\\d{2}\\.txt$
可以簡化為
\\d+_[a-zA-Z_]+_\\d{8}\\.txt$
因為\\d{2}\\d{2}
看起來確實很多余-除非您想要捕獲組,否則您可以這樣做:
\\d+_[a-zA-Z_]+_(\\d{4})(\\d{2})(\\d{2})\\.txt$
移除錨點並逃脫點:
\d+[a-zA-Z_]+\d{8}\.txt
我是php的新手,但我認為您可以在php或您的語言中使用任何等效的explode()
函數。
$string = "01-09-13 10:17AM 11 109_Admin_RegistrationResponse_20130103.txt";
$pieces = explode("_", $string);
$stringout = "";
foreach($i = 0;$i<count($pieces);i++){
$stringout = $stringout.$pieces[$i];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.