2

php dom パーサーを使用してさまざまな Web サイトを解析した後、多数の空行、予期しないキャリッジ リターン、複数のスペース、タブ、およびその他の驚きを含む複数行の文字列を取得しています。

入力

     Partner Company
 Firstname  Lastname   
                                        Street. 152 
            12345 City

Tel: 01234 567898
Fax: 01234 567899
Mobile: 0123 567899

今、私は preg_replace 関数で文字列をクリーンアップしようとしています...

コード

$lineToOutput = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $lineToOutput);    // remove all blank (empty lines)
$lineToOutput = preg_replace("/[\t]/", " ", $lineToOutput); // convert tabs to spaces
$lineToOutput = preg_replace("/[ ]{2,}/", " ", $lineToOutput);  // convert multiple spaces to single spaces
$lineToOutput = preg_replace("/[\n] /", "\n", $lineToOutput);   // remove spaces at beginning of lines
$lineToOutput = preg_replace("/ [\n]/", "\n", $lineToOutput);   // remove spaces at end of lines

しかし、スペースで始まりスペースで終わる行の削除に失敗しました。助言がありますか?

出力

 Partner Company    <-- unwanted space at beginning of line
Firstname Lastname  <-- unwanted space at end of line (not visible)
 Street. 152        <-- unwanted space at beginning of line
12345 City
Tel: 01234 567898
Fax: 01234 567899
Mobile: 0123 567899
4

2 に答える 2

1
// Just the same solution like m.buettner, but a little simpler. 
$lineToOutput = preg_replace('/^\s*|\s*\Z/m', '', $lineToOutput);
于 2013-07-02T00:06:35.857 に答える