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。你拥有做这件事的能力!