0

s で始まり、で終わる文字列から部分文字列を取得するにはどうすればよいですか/s

$text次の形式にすることができます

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

どのように私は取得することができます,いつかそれが含まれていないことABCが起こるかもしれません.$texts/sABCABC

4

2 に答える 2

1

些細なことかもしれませんが、次のようなものを使用するだけではどうですか (正規表現は必ずしも問題に値するとは限りません;)):

$text = (strpos($text,'s') !== false and strpos($text,'/s') !== false) ? preg_replace('/^.*s(.+)\/s.*$/','$1',$text) : $text;
于 2012-08-08T12:36:24.077 に答える
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 に答える