PHP の正規表現は特殊で非常にわかりにくいです。解決方法

WBOY
リリース: 2016-06-13 13:23:42
オリジナル
874 人が閲覧しました

PHP の正規表現は特殊であり、非常にわかりにくいです。 。 。
次の 2 行のデータを抽出します
123[test] abc c1 c2 c3
456 def d1[test] d2 d3
改行とスペースで区切ります

に抽出する必要があります123, abc,c1 c2 c3
456,def,d1 d2 d3
データの途中に [*] がある可能性がありますが、これは無視する必要があります
preg_match_all 一致する式を要求します

----- -解決策--------------------
preg_match_all または preg_replace が必要ですか?
何が起こっていますか?それらのカンマで?最後の 3 つにカンマがないのはなぜですか?
------解決策------------------
定期的には、いいえ。 。

PHP コード
$str = '123[テスト] abc c1 c2 c3
456 def d1[テスト] d2 d3';

$ar = split("[nr]+",$str);

$ar1 =explode(' ',$ar[0]);
$ar2 =explode(' ',$ar[1]);

関数 fmt($ar) {
   foreach($ar as $k => $v) $ar[$k] = preg_replace('/[.*]/','',$v);
   $ar を返します。
}
$ar1 = fmt($ar1);
$ar2 = fmt($ar2);

$str = implode(' ',$ar1)."n".implode(' ',$ar2);

echo "<pre class="brush:php;toolbar:false">{$str}";

/*
//出力
123 abc c1 c2 c3
456 デフ d1 d2 d3
*/
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
話し合う

それは不可能です、この中で次の正規表現が使用されています
preg_replace('/[.*]/','',$v);
行数が多くなってしまうためそれらを効率的に簡単に表現したい場合は、それを解決できます。

------解決策---------
行が多すぎても心配しないでください。上記のコードを少し変更すると、不規則な行データに適応できるようになります。
------解決策---------
PHP コード
$str =
'123[テスト] abc c1 c2 c3
456 def d1[テスト] d2 d3
789 ギ[sfjsldf] z1 z2 z3';

$ar = split("[nr]+",$str);

$arTMP = 配列();
foreach($ar as $v) $arTMP[] =explode(' ',$v);

関数 fmt($ar) {
   foreach($ar as $k => $v) $ar[$k] = preg_replace('/[.*]/','',$v);
   $ar を返します。
}
foreach($arTMP as $k => $v) $arTMP[$k] = implode(' ',fmt($v));

$str = implode("n",$arTMP);

echo "<pre class="brush:php;toolbar:false">{$str}";

/*
//出力
123 abc c1 c2 c3
456 デフ d1 d2 d3
789 ギ z1 z2 z3
*/
<br><font color="#e78608">------解決策---------</font><br>こんにちは。 。規則的なルールを見るたびにめまいを感じます。 。 <br>
ログイン後にコピー
PHP コード
$str =
'123[テスト] abc c1 c2 c3
456 def d1[テスト] d2 d3
789 ギ[sfjsldf] z1 z2 z3';

$str = preg_replace('/[.*]/','',$str);

echo "<pre class="brush:php;toolbar:false">{$str}";

/*
//出力
123 abc c1 c2 c3
456 デフ d1 d2 d3
789 ギ z1 z2 z3
*/ <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート