正規表現で取り除こうとしてきた余分な綿毛を含む、Google sketchup からエクスポートされた一連の座標があります。たとえば、SketchUp から .xsi ファイルのキャンバスに 3D で図面をすばやく取得するのは非常に興味深いと思います。1 つの変数にデータ セットの複数のインスタンスがあります。
$str = 'SI_NurbsCurve Edge1 {
1、
0,
0,
4、
0,0,1,1,
2、
870.243,1229.35,143.395,1
927.537,1323.53,103.842,1
}
SI_NurbsCurve Edge2 {
1、
0,
0,
4、
0,0,1,1,
2、
899.54,1217.88,116.255,1
870.243,1229.35,143.395,1
}';
この正規表現を使用して、座標データを除く複数のインスタンスからすべてを削除しようとしました:
$reg = '#SI_NurbsCurve エッジ[^"]* {
1、
0,
0,
4、
0,0,1,1,
2,#';
$rep="";
$str=preg_replace($reg,$rep,$str);
ただし、この結果、文字列で見つかった最後の座標セットのみがエコーされます。この例では、次のものが残ります。
899.54,1217.88,116.255,1 870.243,1229.35,143.395,1
それに加えて、座標の各行で発生する最後の数字「1」を削除しようとしているため、この例全体は次のようになります。
870.243,1229.35,143.395, 927.537,1323.53,103.842, 899.54,1217.88,116.255, 870.243,1229.35,143.395,
私はあなたの時間とノウハウに非常に感謝しています!