0

如何从以 . 开头s 和结尾的字符串中获取子字符串/s

$text可以是以下格式

 $text = "LowsABC/s";
 $text = "sABC/sLow";
 $text = "ABC";

我怎么能得到ABC,有时可能会发生$text不包含s/s只是ABC,我仍然想得到的ABC

4

2 回答 2

1

正则表达式:

s(.*)/s

或者当您想要获得最小长度的字符串时:

s(.*?)/s

并应用此资源,您可以使用preg_match

preg_match( '@s(.*)/s@', $text, $match );
var_dump( $match );

现在您必须检查是否找到了某些东西,如果没有,则必须将结果设置为整个字符串:

if (not $match) {
   $match = $text;
}

使用示例:

$ cat 1.php 
<?
$text = "LowsABC/s";
preg_match( '@s(.*)/s@', $text, $match );
var_dump( $match );
?>

$ php 1.php
array(2) {
  [0]=>
  string(6) "sABC/s"
  [1]=>
  string(3) "ABC"
}
于 2012-08-08T12:20:25.173 回答
1

可能是微不足道的,但是仅仅使用这样的东西怎么样(正则表达式并不总是值得麻烦;)):

$text = (strpos($text,'s') !== false and strpos($text,'/s') !== false) ? preg_replace('/^.*s(.+)\/s.*$/','$1',$text) : $text;
于 2012-08-08T12:36:24.077 回答