字符串模式匹配

时间:2011-10-10 10:13:01

标签: php string pattern-matching

  

可能重复:
  PHP how to remove extra characters at the end and beginning of a string

我有这样的字符串:

输入

/help/detail.php
/page1/
page2/
/page3

输出:

help/detail.php
page1
page2
page3

我想从字符串中删除/,如果它存在于开头或结尾。 /在字符串的中间是可以的。我总是很困惑创建这些类型的匹配字符串。

由于

5 个答案:

答案 0 :(得分:1)

以“sed”形式给你:s/^[/]*(.*)[/]*$/$1/将删除字符串后面的任意数量的斜杠。内斜线将保持不变。

答案 1 :(得分:1)

您可能正在寻找^(匹配字符串的开头)和$(匹配字符串的结尾)。

答案 2 :(得分:1)

正则表达式是这样的:

preg_replace('^/+|/+$', '', $string);

但实际上你不需要它,trim()将在这种情况下完成工作:

trim($string, '/');

答案 3 :(得分:1)

试试这个

 echo trim('/page1/' ,'/');

答案 4 :(得分:1)

你可以使用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);