2

$newstring次のような行がロードされた文字列があります。

<tt>Thu 01-Mar-2012</tt> &nbsp; 7th of Atrex, 3009 <br>

区切り文字としてandを$newstring使用して爆発したい。<tt><br>

それを爆発させるためにどのように使用できますpreg_split()か?

4

6 に答える 6

1

さて、私は Nexus 7 を使用しています。タブレットで質問に答えるのはあまりエレガントではないことがわかりましたがpreg_split、次の正規表現を使用してこれを行うことができます。

<\/?tt>|</?br>

ここで動作する正規表現を参照してください: http://www.regex101.com/r/kX0gE7

PHP コード:

$str = '<tt>Thu 01-Mar-2012</tt>  7th of Atrex, 3009<br>';
$split = preg_split('@<\/?tt>|</?br>@', $str);

var_export($split);

配列$splitには以下が含まれます。

array ( 
    0 => '', 
    1 => 'Thu 01-Mar-2012', 
    2 => ' 7th of Atrex, 3009', 
    3 => '' 
)

( http://ideone.com/aiTi5Uを参照)

于 2012-12-27T05:48:56.780 に答える
0

<tt>とタグが文字列内の唯一のタグである場合、次の<br/>ような単純な正規表現が実行されます。

$exploded = preg_split('/\<[^>]+\>/',$newstring, PREG_SPLIT_NO_EMPTY);

式:区切り文字はそれぞれおよび
で始まり、 これらの文字の間に少なくとも 1 つあることが期待されます (これは、終了文字を除く任意の文字です)<>
[^>]>

PREG_SPLIT_NO_EMPTY
preg_splitこれは、空の文字列である配列値を回避 する関数に渡される定数です。

$newString = '<tt>Foo<br/><br/>Bar</tt>';
$exploded = preg_split('/\<[^>]+\>/',$newstring);
//output: array('','Foo','','Bar',''); or something (off the top of my head)
$exploded = preg_split('/\<[^>]+\>/',$newstring, PREG_SPLIT_NO_EMPTY);
//output: array('Foo', 'Bar')

ただし、これら 2 つ以上のタグまたは変数入力 (ユーザー提供の場合など) を扱っている場合は、マークアップを解析したほうがよい場合があります。php のDOMDocumentクラスを調べて、こちらのドキュメントを参照してください。

PS:実際の出力を確認するには、試してくださいecho '<pre>'; var_dump($exploded); echo '</pre>';

于 2012-12-27T06:21:26.560 に答える
0
function multiExplode($delimiters,$string) {
    return explode($delimiters[0],strtr($string,array_combine(array_slice($delimiters,1),array_fill(0,count($delimiters)-1,array_shift($delimiters)))));
}

例: $values = multiExplode(array("","
"),$your_string);

于 2013-08-12T11:28:48.797 に答える
0

このコードを試してください..

  <?php

 $newstring = "<tt>Thu 01-Mar-2012</tt> &nbsp;7th of Atrex, 3009<br>";

 $newstring = (explode("<tt>",$newstring));
                   //$newstring[1] store Thu 01-Mar-2012</tt> &nbsp;7th of Atrex,      3009<br>  so do opration on that.

 $newstring = (explode("<br>",$newstring[1]));
 echo $newstring[0];
?> 

output:-->

 Thu 01-Mar-2012</tt> &nbsp;7th of Atrex, 3009
于 2012-12-27T05:54:15.157 に答える
0

このコードを試してみてください..

<?php
$keywords = preg_split("/\<tt\>|\<br\>/", "<tt>Thu 01-Mar-2012</tt> &nbsp; 7th of Atrex, 3009 <br>");
print_r($keywords);
?>

CodePadの例を見てください。

IF も含めたい場合は、</tt>.. を使用します<\/?tt>|<br>を参照してください。

于 2012-12-27T05:57:21.187 に答える
-1

例を含むカスタム関数を次に示します。

http://www.phpdevtips.com/2011/07/exploding-a-string-using-multiple-delimiters-using-php/

于 2012-12-27T05:41:43.810 に答える