1

単語内でも無効な改行が追加されたテキストと、単語の間にある有効な改行を含むテキストをクリーンアップして、先頭または訓練スペースがあるようにする必要があります。

php を使用して、文字で囲まれた複数行のテキストからこれらの改行を削除しようとします。つまり、前後にスペースがないことを意味します。

$textbefore = "text has newlines in wo\nrds and normal newlines \n bewtween words and again in wo\nrds";
$textafter = "text has newlines in words and normal newlines \n bewtween words and again in words";

これを試した

$pattern="/(.{2}\n.{1})/m";

考えられるすべてのパターンを試しましたが、最良の場合、最初に出現したパターンのみが一致します。

どんなアイデアでも大歓迎です。

4

2 に答える 2

2

これを次の正規表現に簡略化できます。

$textafter = preg_replace( "/(?<=\S)\n|\n(?=\S)/", '', $textbefore);

それが見つけなければならないと述べている:

  1. (?<=\S)\n- 空白文字以外の文字が先行する改行、または
  2. \n(?=\S)- 空白文字以外の文字が続く改行

これらの改行のいずれかが見つかると、それらは何も置き換えられません (空の文字列)。

このデモから、次の文字列が生成されることがわかります。

string(82) "text has newlines in words and normal newlines 
 bewtween words and again in words"
于 2013-09-20T14:44:09.663 に答える