1

これが文字列

(コード)です

Pivot: 96.75<br />Our preference: Long positions above 96.75 with targets @ 97.8 &amp; 98.25 in extension.<br />Alternative scenario: Below 96.75 look for further downside with 96.35 &amp; 95.9 as targets.<br />Comment the pair has broken above its resistance and should post further advance.<br />

(文章)

"ピボット: 96.75
私たちの好み: 97.8 & 98.25 のターゲットで 96.75 を超えるロング ポジション。
別のシナリオ: 96.75 の下では、ターゲットとして 96.35 & 95.9 でさらに下値を探します。
ペアはレジスタンスを上抜けており、さらに上昇するはずです.
"



結果は

(コード)

<b>Pivot</b>: 96.75<br /><b>Our preference</b>: Long positions above 96.75 with targets @ 97.8 &amp; 98.25 in extension.<br /><b>Alternative scenario</b>: Below 96.75 look for further downside with 96.35 &amp; 95.9 as targets.<br />Comment the pair has broken above its resistance and should post further advance.<br />

(テキスト)
ピボット: 96.75
私たちの好み: 97.8 と 98.25 のエクステンションのターゲットで 96.75 を超えるロング ポジション。
別のシナリオ: 96.75 を下回った場合、96.35 と 95.9 をターゲットとして、さらに下値を探します。
ペアがレジスタンスを上回り、さらに前進する必要があるとコメントしてください。



ヤマアラシ:記号
の前のすべての単語をラップします:

私はこの正規表現を試しました: ((\A )|(<br />))(?P<G>[^:]*):、しかし、それはpython環境でのみ動作します。PHPでこれが必要です:

$pattern = '/((\A)|(<br\s\/>))(?P<G>[^:]*):/';
$description = preg_replace($pattern, '<b>$1</b>', $description);

ありがとう。

4

3 に答える 3

2

この preg_replace はうまくいくはずです:

preg_replace('#(^|<br ?/>)([^:]+):#m','$1<b>$2</b>:',$input)

PHP フィドル- 実行 (F9)

于 2013-08-13T09:37:05.290 に答える
1

これを行うための最も「一般的」で最も正規表現の費用がかからない方法は、次のとおりです。

$parts = explode('<br', $str);//don't include space and `/`, as tags may vary
$formatted = '';
foreach($parts as $part)
{
    $formatted .= preg_replace('/^\s*[\/>]{0,2}\s*([^:]+:)/', '<b>$1</b>',$part).'<br/>';
}
echo $formatted;

または:

$formatted = array();
foreach($parts as $part)
{
    $formatted[] = preg_replace('/^\s*[\/>]{0,2}\s*([^:]+:)/', '<b>$1</b>',$part);
}
echo implode('<br/>', $formatted);

でテストし、これを出力として取得しました

ピボット: 96.75
私たちの好み: 96.75 を超えるロング ポジションで、ターゲットは 97.8 & 98.25 のエクステンションです。
別のシナリオ: 96.75 を下回った場合、96.35 と 95.9 をターゲットとして、さらに下値を探します。
ペアがレジスタンスを上回り、さらに前進する必要があるとコメントしてください。

そうは言っても、私はこのデータのビットが奇妙だと思います。もし私があなただったら、すべてのブレークを次のように検討するstr_replaceか、またはpreg_replace-ing します。PHP_EOL

$str = preg_replace('/\<\s*br\s*\/?\s*\>/i', PHP_EOL, $str);//allow for any form of break tag

そして、あなたの文字列は、私が解析しなければならなかったデータとまったく同じように見え、その正規表現をここで取得しました:

$str = preg_replace(...);
$formatted = preg_replace('/^([^:\n\\]++)\s{0,}:((\n(?![^\n:\\]++\s{0,}:)|.)*+)/','<b>$1:</b>$2<br/>', $str);
于 2013-08-13T09:45:09.783 に答える