这是一些我可以拼凑起来的东西,但我想知道是否有人有一个干净的解决方案来解决我的问题。我拼凑起来的东西不一定非常简洁或快速!
我有一个像///hello/world///
这样的字符串,我只需要去掉第一个和最后一个斜杠,其他的都不要,这样我就得到了一个像//hello/world//
这样的字符串。
PHP的trim
并不完全正确:执行trim($string, '/')
将返回hello/world
。
需要注意的一点是字符串的开头或结尾不一定有斜线,下面是我希望不同字符串出现的一些例子:
///hello/world/// > //hello/world//
/hello/world/// > hello/world//
hello/world/ > hello/world
提前感谢您的帮助!
8条答案
按热度按时间eqoofvh91#
此函数用作正式微调,只是它只微调一次。
ef1yzkbh2#
这个是最简单的,它匹配^/(正斜杠)和/$(正斜杠),如果找到其中一个,就用空字符串替换。只需将下面正则表达式中的/替换为您选择的字符。注意,对于分隔符,我使用#而不是/以使其更易于阅读。这将从字符串中删除任何单个的第一个或最后一个/:
结果:
lymnna713#
我想这就是你要找的:
rjee0c154#
使用反向引用的另一个正则表达式:
这样做的好处是,如果你想使用/以外的字符,你可以更清楚地做到这一点。它还强制/字符开始和结束字符串,并允许/出现在字符串中。最后,它只删除开始字符,如果有一个字符在结束,以及反之亦然。
wko9yo5t5#
还有另一种实现方式:
fwzugrvs6#
这已经是6年多以前的事了,但我还是要给出可能的答案:
brvekthn7#
我写了这个代码来修剪一次字符
wgmfuz8q8#
我首先想到的是: