-2

重複の可能性:
RFC 822の展開方法
電子メールのようなヘッダーの解析(RFC822と同様)

長い行が次の行に折り返されるという点で、電子メールデータに似た入力データがいくつかあります。例えば:

robot-useragent: ABCdatos BotLink/1.0.2 (test links)
robot-language: basic
robot-description: This robot is used to verify availability of the ABCdatos
                   directory entries (http://www.abcdatos.com), checking
                   HTTP HEAD. Robot runs twice a week. Under HTTP 5xx
                   error responses or unable to connect, it repeats
                   verification some hours later, verifiying if that was a
                   temporary situation.

robot-descriptionフィールドは1行に対して「長すぎる」ため、次の行に折り返されます。preg_replace()このデータの解析を支援するために、次の条件に置き換えるために使用できる正規表現を考え出します。

  • 改行文字とそれに続く空白
  • 改行文字の後に追加の改行文字を置き換えない

出力例:

robot-description: This robot is used to verify availability of the ABCdatos directory entries (http://www.abcdatos.com), checking HTTP HEAD. Robot runs twice a week. Under HTTP 5xx error responses or unable to connect, it repeats verification some hours later, verifiying if that was a temporary situation.

私はRegExを初めて使用します。どうすればそのような表現を構築できますか?回答する場合は、表現に構成要素の簡単な説明を含めてください。私は本当にこれらを行う方法を学びたいです。

私はこれから始めました: \n([^\S])* それは近いです。 http://codepad.org/iMObpgFX

4

1 に答える 1

1

多分あなたは試すことができます:

(\r|\n)\s+

(\r|\n) # matches both newline and carriage return 
\s+     # any whitespace (tabs, spaces, new lines)

試してみてください

于 2012-10-09T17:57:24.843 に答える