-1
$newpair = '~I love~~you~ notes';

preg_match_all ('^\~(.*?)\~^' , $newpair, $np);

foreach($np[1] as $key ){
print_r($np[1]);
echo $key .'<br/>';
}

echo $np; //result: I love you

上記の preg_match 内の文字列をエコーし​​ます~

外側のテキストをエコーする式を作成するのを手伝ってもらえますnotesか?

4

3 に答える 3

1
$outside = preg_replace('#~[^~]*~#', '', $newpair);

これは、対になったチルダ以外のすべてで構成される文字列を返します。

于 2013-06-10T02:39:06.877 に答える
0

~肯定的な後読みで最後のものを見つけることができます。次に~、文字列の最後に到達するまで、 a ではないすべてのものをキャプチャし続け$ます。

(?<=~)[^~]+$

次のように使用します。

$newpair = '~I love~~you~ notes';
preg_match_all ('/(?<=~)[^~]+$/' , $newpair, $np);
var_dump( $np[0][0]);

版画:

string(6) " notes"
于 2013-06-10T02:41:16.513 に答える
0

あなたはこれを試すことができます:

$subject = '~I love~~you~ notes';
$pattern = '/~\K[^~]++(?=~)/';

preg_match_all ($pattern, $subject, $matches);

print_r($matches);

$result = implode(' ', $matches[0]);

echo $result;

~パターンについては、マッチ後に lookaheadがあるかどうかを確認するように選択して(?=...)いますが、これが必要な条件でない場合は削除できます。

パターンの\Kスタートをリセットします。

于 2013-06-10T03:02:05.593 に答える