-1

文字列内の英数字以外のすべての文字の前後にスペースを挿入しようとしています。たとえば、ユーザーが入力する (good + bad)* nice のような文字列を (good + bad ) * nice のように見せたいです。私がこれをしたい理由は、それらを次のようになる配列に入れたいからです。

  $arr[0] = "(";
  $arr[1] = "good”;
  $arr[2] = "+”;
  $arr[3] = "bad";
  $arr[4] = ")";
  $arr[5] = "*";
  $arr[6] = "+";
4

4 に答える 4

-1

これを達成するには preg_replace を使用できると思います。例えば:

$string = "(good+bad)";
echo preg_replace('/\W+/', ' $0 ', $string);
于 2014-09-15T23:31:44.550 に答える
-1

これはテストしていませんが、正規表現を使用してこれを達成できる可能性があります。

s/\W/$1 /g
于 2014-09-15T23:28:46.780 に答える
-1

これはPHPに似てい ます - 文字列の文字を繰り返します

基本的にstr_splitおよび/またはpreg_Splitを使用します

preg_split ページから取得 (およびわずかに変更:

<?php
$str = "(alpah+beta)*ga/6";
$keywords = preg_split("/[\/\(\)\*\&\^\%\$\#\@\!\_\{\}\:\"\+\\\]/", "$str");
print_r($keywords);
// now we replace the keywords with itself + a space on the left and right.
$count = count($keywords);

for ($i = 0; $i < $count; $i++) {
    if ( $keywords[$i] == '') {
        unset($keywords[$i]);
    }

}
var_dump($keywords);
foreach ($keywords as &$key) {
     $str = preg_replace("/$key/", " $key ", "$str");
}
echo "Finally: $str";
?>

これは、仕事をするものの簡単なモックアップにすぎません。(本番コードのダンプ/印刷を削除します)

于 2014-09-16T01:09:30.490 に答える