2016-11-10 8 views
4

私はpdfファイルからデータを取り除いているので、pdfをtxtに変換してデータを取得しました。 1つのレコードのみがある場合、私はこの

CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #

ような文字列でメインのレコードを取得し、私はこのような単一の文字列に複数のレコードを取得し、いつか、私は、文字列

で複数のレコードがあることを、「#」文字で考え出しました最初の行でInvite 1 MA300C 3 2 0 . 0 450.0 DIGCL R 9 9 . 0 210.0 6 Y 4 4 #RSVP 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 9 9 . 0 210.0 6 N 1 0 #Letter1 1 MA130C 3 2 0 . 0 450.0 DIGC L R 29 7 . 0 210.0 2 N 4 0 #Letter1 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 29 7 . 0 210.0 2 N 1 0 #Envelopes 1 ENVDL E P F S 3 2 0 . 0 450.0 DIGBH S 13 0 . 0 225.0 1 N 1 0 #

実際の文字列はので、この文字はいつかあるYは、はい静置ここ

CARDS 1 GA350C 320.0 450.0 DIGCLR 90.0 55.0 2 Y 4 4

好きN

はやり方で数字と文字は、私が示したどのように私は参加できないために立つべき?それは、私が文字と数字を組み合わせる

$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #"; 
$newstring = preg_replace("/(\d+)\s+(?=\d+)/", "$1", $string); 

しかし、運を使用しましたかかわらず、文字列の長さ
の仕事に持っている誰もが解決策を持っていてくださいますか?この質問をご覧いただきありがとうございます。

答えて

0

私は1つではありませんpreg_replace

次のコードは、例えば、新たなフォーマットにすべての奇妙な形式の数字をもたらす:

$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2 Y 4 4"; 
    preg_match_all("/(\d+\s)+\.\s?0/", $string, $matches); 
    $newNumbers = array_map(
     function ($number) { return str_replace(' ', '', $number); }, 
     $matches[0] 
    ); 
    $newstring = str_replace($matches[0], $newNumbers, $string); 

結果:

CARDS 1 GA350C 320.0 450.0 DIGCL R 90.0 55.0 2 Y 4 4

+0

ありがとうございました。私はレコードの数を見つけることはできませんので問題はありませんが、あなたのデモでDIGCL Rはこれが1つの単語であることに注意してください。DIGCLRはDigitalColorを表します。それは変わらない。時々それはDIGBHSまたはDIGBLWです。ありがとう、あなたの提案を感謝します。 –

+0

心配しない私はDIGCLRをDIGCLR –

関連する問題