【发布时间】:2015-05-05 17:28:45
【问题描述】:
我正在使用这个正则表达式将歌曲名称格式化为 url 友好的别名。它用连字符替换 1 个或多个连续的特殊字符和空格实例。
$alias = preg_replace("/([^a-zA-Z0-9]+)/", "-", trim(strtolower($name)));
这很好,所以如果歌曲名称是This is *is* a (song) NAME,它将创建别名this-is-a-song-name。但是,如果名称的开头或结尾有特殊字符 *This is a song (name),它将创建 -this-is-a-song-name-,并在每一端创建连字符。
如何修改正则表达式以替换上面的内容,但是用空格替换第一个和最后一个特殊字符。
【问题讨论】:
-
您是否考虑过使用第二个过滤器来修剪字符串头部和尾部的连字符(如果它们存在)?
-
是的,确实考虑过,但我想试试看是否可以在一个正则表达式语句中做到这一点