如何从以 . 开头s
和结尾的字符串中获取子字符串/s
。
$text
可以是以下格式
$text = "LowsABC/s";
$text = "sABC/sLow";
$text = "ABC";
我怎么能得到ABC
,有时可能会发生$text
不包含s
而/s
只是ABC
,我仍然想得到的ABC
。
正则表达式:
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"
}
可能是微不足道的,但是仅仅使用这样的东西怎么样(正则表达式并不总是值得麻烦;)):
$text = (strpos($text,'s') !== false and strpos($text,'/s') !== false) ? preg_replace('/^.*s(.+)\/s.*$/','$1',$text) : $text;