2

以下の配列を調べて、「+」を含む一致を空/ヌルに置き換える正規表現パターンを見つけようとしているので、正の数が含まれている場合はヌルにします。

助けてくれてありがとう。まだ勉強してる。

Array (
[0] => IND: -3
[1] => NYJ: +0
[2] => BAL: +3
[3] => CLE: +6
[4] => WSH: +5
[5] => DET: -2.5
[6] => ATL: +0
[7] => ARI: -7
[8] => OAK: +7
)

$pattern = '/(?<!A-Z\:)\+/i';
$replacement = '';
$replaced = preg_replace($pattern, $replacement, $line
4

6 に答える 6

4

に設定するnullと設定が解除されるため、次のようになります。

$array = preg_grep('/\+/', $array, PREG_GREP_INVERT);
于 2013-11-15T01:10:54.650 に答える
2
array_walk($array, function(&$v){
  $v = (strpos($v,'+')!==false)? null : $v;
});
于 2013-11-15T01:17:05.143 に答える
2

この問題については、正規表現まで行う必要はありません。strpos文字列にa があるかどうかがわかり+ます。そうは言っても、次のarray_filterように使用してこれらの出現を削除できます。

$result = array_filter($array, function($i)
{
    return strpos($i, '+') === false;

});
于 2013-11-15T01:08:58.563 に答える
1

正規表現は、配列ではなく文字列で機能します。配列をループし、整数比較を実行して値を再割り当てする方が、おそらくより迅速かつ簡単です。

于 2013-11-15T01:06:18.300 に答える
0

余分なクレジットを得るために、チーム名の後に「+」を付ける方法を教えてください。配列はこんな感じ。

 Array
(
[0] => IND: -3
TEN: +3
[1] => NYJ: -1
BUF: +1
[2] => BAL: +3
CHI: -3
[3] => CLE: +6
CIN: -6
[4] => WSH: +4.5
PHI: -4.5
[5] => DET: -2.5
PIT: +2.5
[6] => ATL: +1
TB: -1
[7] => ARI: -8.5
JAX: +8.5
[8] => OAK: +9
HOU: -9
[9] => SD: -1.5
MIA: +1.5
[10] => SF: +3
NO: -3
[11] => GB: +4.5
)
于 2013-11-16T01:15:34.333 に答える