[英]php Regex file path | second matching after specific character
我试图提取文本内部没有磁盘字母的文件补丁。 喜欢来自AvastSecureBrowserElevationService; C:\\Program Files (x86)\\AVAST Software\\Browser\\Application\\elevation_service.exe [X]
AvastSecureBrowserElevationService; C:\\Program Files (x86)\\AVAST Software\\Browser\\Application\\elevation_service.exe [X]
extract :\\Program Files (x86)\\AVAST Software\\Browser\\Application\\elevation_service.exe
。
我的实际正则表达式看起来像这样,但它会在任何可能包含文件名的空间上停止。
(?<=:\\)([^ ]*)
我弄清楚的是,我可以匹配点之后的第一个空格字符,因为在点之后会有一些带空格的目录名的可能性很小,我总是会做快速的手动检查。 但我不知道如何在正则表达式中写这个
您可以将此正则表达式用于此目的:
(?<=[a-zA-Z]):[^.]+\.\S+
RegEx详细信息:
(?<=[a-zA-Z])
:断言断言我们之前有一封英文字母:
:
:匹配文字:
[^.]+
:匹配1个非点字符 \\.
:匹配文字.
\\S+
:匹配1个非空白字符 在这里我们将使用整个字符串,因为我们收集了我们希望输出的内容,并且我们将preg_replace
:
.+C(:\\.+\..+?)\s.+
$re = '/.+C(:\\.+\..+?)\s.+/m';
$str = 'AvastSecureBrowserElevationService; C:\\Program Files (x86)\\AVAST Software\\Browser\\Application\\elevation_service.exe [X]';
$subst = '$1';
$result = preg_replace($re, $subst, $str);
echo $result;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.