目標は、バックスラッシュが前に付いている場合を除いて、文字列を行に分割することです。視覚化しましょう。このような文字列:
Hello\
world!
Bye, world.
分割する必要があります:
[0] Hello world!
[1] Bye, world!
私はこの正規表現を思いついた(PHPの場合preg_split
):
/(?<!\\\\)\n/
分割し、分割時にバックスラッシュを考慮に入れますが、次のようになります。
- バックスラッシュと改行文字は存続します。
- UNIXライクな改行(
\n
)でのみ機能します。
したがって、実際には次のように出力されます。
[0] Hello\\x10 world!
[1] Bye, world!
私の正規表現はどのように見えるべきですか?
これまでのところ、問題を解決するために、私は試しました:
/(?<!\\\\)(?:\r\n|\n|\r)/
/(?:(?<!\\\\)\n)/
しかし、それらのどれも機能しませんでした。