Php 从文件列表中返回文件名
所以我有一个文件名列表,我想把它拉出来,然后把每个文件名放到一个数组中 下面是我将尝试从中提取数据的列表示例:Php 从文件列表中返回文件名,php,regex,Php,Regex,所以我有一个文件名列表,我想把它拉出来,然后把每个文件名放到一个数组中 下面是我将尝试从中提取数据的列表示例: ------------- PENDING: (fs) gm_construct.bsp PENDING: (fs) gm_flatgrass.bsp ... 正则表达式是否能够解析此列表并仅提取以下位: gm_construct gm_flatgrass 比如说 然后需要将每个条目推送到一个数组中 此表达式是否也能够在比此长得多的列表中运行,并处理不同的前缀,如: ttt_t
-------------
PENDING: (fs) gm_construct.bsp
PENDING: (fs) gm_flatgrass.bsp
...
正则表达式是否能够解析此列表并仅提取以下位:
gm_construct
gm_flatgrass
比如说
然后需要将每个条目推送到一个数组中
此表达式是否也能够在比此长得多的列表中运行,并处理不同的前缀,如:
ttt_terrortown
伪代码:
str.replaceAll("PENDING: (fs) ", "");
str.replaceAll(".bsp", "");
str.replaceAll("-", "");
str[] = str.split("\n");
str[]将包含您的文件名列表
这基本上替换了所有“挂起的”内容和“.bsp”内容,并拆分了行
希望这有帮助
另外,这根本不需要正则表达式!(越容易越好)最后,一个朋友想出了一个小正则表达式来做我想做的事。可能没有其他答案那么简单,但这是我个人将要使用的答案,对于我的用例来说效果很好
preg_match_all("/(?<=fs\)).*?(?=\.bsp)/", $maps, $map_list);
preg\u match\u all(“/”(?你不认为你可以删除PENDING:(fs)
,修剪,然后得到一个子字符串,直到第一个
?不需要正则表达式。但是,这对所有文件名都有效吗?因为这个列表实际上只是一个长字符串。遍历行,只获取以PENDING:(fs)开头的子字符串
,然后拆下、修剪等。