Php 字符串模式匹配
可能重复:Php 字符串模式匹配,php,string,pattern-matching,Php,String,Pattern Matching,可能重复: 我有这样的字符串: 输入: /help/detail.php /page1/ page2/ /page3 help/detail.php page1 page2 page3 输出: /help/detail.php /page1/ page2/ /page3 help/detail.php page1 page2 page3 如果字符串的开头或结尾存在/,我想将其从字符串中删除在字符串的中间是可以的。我总是对创建这些类型的匹配字符串感到困惑 感谢以“sed”形式提供给您:s
我有这样的字符串: 输入:
/help/detail.php
/page1/
page2/
/page3
help/detail.php
page1
page2
page3
输出:
/help/detail.php
/page1/
page2/
/page3
help/detail.php
page1
page2
page3
如果字符串的开头或结尾存在/
,我想将其从字符串中删除在字符串的中间是可以的。我总是对创建这些类型的匹配字符串感到困惑
感谢以“sed”形式提供给您:
s/^[/]*(.*)[/]*$/$1/
将删除字符串后面任何数量的斜杠。内部斜杠将保持不变。您可能正在查找^
(匹配字符串开头)和$
(匹配字符串结尾)。正则表达式如下:
preg_replace('^/+|/+$', '', $string);
但实际上你并不需要它,在这种情况下,它会起作用:
trim($string, '/');
试试这个
echo trim('/page1/' ,'/');
您可以为此使用strpos、strrpos和substr
$string ='/help/detail.php'
## begin of string
$len=strlen($string);
if( strpos($string,'/') == 0 )
$string=substr($string,1,$len);
## end of string
$len=strlen($string);
if( strrpos($string,'/') == ($len-1) )
$string=substr($string,0,-1);
(参考)closevoting dooplicatz。你拥有做这件事的能力!