我环顾四周但找不到合适的解决方案。
我有这个字符串
$area = array("Some Text area 1", "Some Text area 2", "Some Text area 33", "Some Text area 40")
我想构建一个preg_replace,它将删除单词“area”和后面的1或2位数字。
我可以这样删除“区域1”
$area = preg_replace('/area 1/','', $area);
我可以继续重复此操作以删除其他匹配,但效率不高。
我可以只使用一个preg_replace删除模式吗?
提前致谢
答案 0 :(得分:2)
$area = preg_replace('/area [0-9]+/','', $area);
将删除所有包含文字'area'后跟数字的匹配。
答案 1 :(得分:1)
使用以下内容指定至少一位数字:
preg_replace('/area [0-9]+/','', $area);
答案 2 :(得分:1)
你还想删除“区域”一词之前的空格吗?代码将是:
$area = preg_replace('/ area \d+/', '', $area);
答案 3 :(得分:0)
在搜索类似内容时遇到过这篇文章:在文本字符串中替换多个术语。
所以,例如,我正在自动生成下拉选择,并且选项基于文件名,我需要加载文件名并生成一个人类可读的文件名。
我的文件名为:temp_Event_Name.php
所以我必须删除“temp”,“_”和“.php”以便有一个可选择的选项,该值将是要传递到后续表单的文件名,该表单将使用该文件生成PDF。
<select>
<option value="temp_Event_Name_2011.php">Event 1</option>
<option value="temp_Event_Name_2012.php">Event 2</option>
</select
我发现使用str_replace
。
所以完整的代码是:
$i = 0;
foreach( $files as $d ){
$file_and_name .= '<option value="'.$files[$i].'">'.str_replace('temp','',str_replace('_',' ',str_replace('.php','',$d) ) )."</option>\n";
$i++;
}
其中 $ files是一个带有文件名的数组,我通过以下方式获得:
$files = array();
$files = glob("temp_*.php");
显然需要额外的格式化才能将其纳入我提议的html中,但这很容易。希望它能帮助@jamester或遇到此事的任何人。