ホームページ バックエンド開発 PHPチュートリアル PHP の正規表現は特殊で非常にわかりにくいです。解決方法

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

Jun 13, 2016 pm 01:23 PM
ar quot replace str test

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>{$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 =&gt; $v) $ar[$k] = preg_replace('/[.*]/','',$v);
   $ar を返します。
}
foreach($arTMP as $k =&gt; $v) $arTMP[$k] = implode(' ',fmt($v));

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

echo "&lt;pre&gt;{$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 "&lt;pre&gt;{$str}";

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Oct 03, 2024 am 06:25 AM

Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる

鉄拳のカーネル・サンダースの夢をKFCが揚げた 鉄拳のカーネル・サンダースの夢をKFCが揚げた Oct 02, 2024 am 06:07 AM

鉄拳のカーネル・サンダースの夢をKFCが揚げた

Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Oct 01, 2024 am 06:21 AM

Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明

初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 Oct 01, 2024 am 06:32 AM

初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出

HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 Oct 02, 2024 pm 09:02 PM

HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着

Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Oct 01, 2024 am 06:16 AM

Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています

Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Oct 01, 2024 am 06:40 AM

Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース

Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Oct 02, 2024 am 06:06 AM

Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します

See all articles