Regex 正则表达式从行内容中提取文件名
我对正则表达式非常陌生。我想提取以下字符串 “109_Admin_RegistrationResponse_20130103.txt” 从该文件内容中,每行选择内容:Regex 正则表达式从行内容中提取文件名,regex,Regex,我对正则表达式非常陌生。我想提取以下字符串 “109_Admin_RegistrationResponse_20130103.txt” 从该文件内容中,每行选择内容: 01-10-13 10:44AM 47 107行政注册详情20130111.txt 01-10-13 10:40AM 11 107行政注册回复20130111.txt 正则表达式不应该选择第二行,只有第一行应该返回true。您的正则表达式有很多不同的错误 您的行不是以所需的文件名开头,而是在那里放置了一个^ 字符组中缺少+,[a-
01-10-13 10:44AM 47 107行政注册详情20130111.txt
01-10-13 10:40AM 11 107行政注册回复20130111.txt
正则表达式不应该选择第二行,只有第一行应该返回true。您的正则表达式有很多不同的错误
^
+
,[a-zA-Z]
,因此只能匹配单个字符\u
,因此它与管理员注册响应
\
和d{2}
将只匹配dd
也转义,否则它也会匹配123\u abc\u 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+\u[a-zA-Z]+\u(\d{4})(\d{2})(\d{2})\.txt$
您的正则表达式有许多不同的错误
^
+
,[a-zA-Z]
,因此只能匹配单个字符\u
,因此它与管理员注册响应
\
和d{2}
将只匹配dd
也转义,否则它也会匹配123\u abc\u 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+\u[a-zA-Z\]+\u(\d{4})(\d{2})(\d{2})\.txt$
移除锚固件并逃离点:
\d+[a-zA-Z_]+\d{8}\.txt
移除锚固件并脱离dot:
\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];
}
$string=“01-09-13 10:17AM 11 109_Admin_RegistrationResponse_20130103.txt”;
$pieces=分解(“25;”,$string);
$stringout=“”;
foreach($i=0;$i我是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];
}
$string=“01-09-13 10:17AM 11 109_Admin_RegistrationResponse_20130103.txt”;
$pieces=分解(“25;”,$string);
$stringout=“”;
foreach($i=0;$iI如果输入是那一行,那么[^\s]*$
?您的编程语言是什么?Luiges90提供的答案似乎正确,我刚刚意识到我需要包含短语“RegistrationDetail”在正则表达式上,正如上面的示例所示,因此它只选择带有该短语的文件名。如果输入是该行,那么[^\s]*$
如何?您的编程语言是什么?Luiges90提供的答案似乎正确,我刚刚意识到我需要包含短语“RegistrationDetail”在正则表达式上,正如上面的例子所示,因此它只选择带有该短语的文件名。您提供的答案似乎正确,我刚刚意识到我需要包含短语“RegistrationDetail”在正则表达式上,正如上面的例子所示,因此它只选择那些带有这些短语的文件名。我得到了它,感谢您的帮助。\d++[a-zA-Z++[RegistrationDetail]+\d{8}.txt$好吧,你没有把RegistrationDetail
放在字符组中-你不会匹配[RegistrationDetail]
中包含任何字符的任何字符串,或者,字面上说,[aegilnorstRD]
…我想你想要\d+[a-zA-Z]+\u RegistrationDetail\d{8}.txt$
与您提供的答案似乎正确相反,我刚刚意识到我需要在正则表达式中包含短语“RegistrationDetail”,正如上面的示例所示,这样它只会选择带有这些短语的文件名。我得到了它,感谢您的帮助。\d++[a-zA-Z++[RegistrationDetail]+\d{8}.txt$好吧,你没有把RegistrationDetail
放在字符组中-你不会匹配[RegistrationDetail]
中包含任何字符的任何字符串,或者,字面上说,[aegilnorstRD]
…我想你想要的是\d+\uu[a-zA-Z]+\uu RegistrationDetail\ud{8}.txt$