我正在尝试使用以下代码
从字符串中删除前导和尾随斜杠preg_replace('/^(\/)$/', '', '/tiger-cat/');
输出不是预期的,但是当我从正则表达式中删除$
时删除前导斜杠,并且当我删除^
时类似地尾随斜杠,当它组合在一起时它没有按预期工作。正则表达式出了什么问题?
答案 0 :(得分:2)
答案 1 :(得分:2)
要执行此操作,您需要使用替换,意味着在字符串的开头^/
或结尾/$
处匹配。
preg_replace('~^/|/$~', '', '/tiger-cat/');
但是当你可以这样做时,这对于给定的字符串是没有意义的:
str_replace('/', '', '/tiger-cat/');
答案 2 :(得分:2)
您需要使用替换(|
)来编码&#34的含义;在开头匹配斜杠或在末尾匹配斜杠":
echo preg_replace('/^\/|\/$/', '', '/tiger-cat/');
但是使用trim
更简单:
echo trim('/tiger-cat/', '/');