s
で始まり、で終わる文字列から部分文字列を取得するにはどうすればよいですか/s
。
$text
次の形式にすることができます
$text = "LowsABC/s";
$text = "sABC/sLow";
$text = "ABC";
どのように私は取得することができます,いつかそれが含まれていないことABC
が起こるかもしれません.$text
s
/s
ABC
ABC
些細なことかもしれませんが、次のようなものを使用するだけではどうですか (正規表現は必ずしも問題に値するとは限りません;)):
$text = (strpos($text,'s') !== false and strpos($text,'/s') !== false) ? preg_replace('/^.*s(.+)\/s.*$/','$1',$text) : $text;
正規表現:
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"
}