\ N {sayı}) Pregreplace nasıl {sayı})

3 Cevap php

Nasıl {number}) ile yerine \n{number})

Ben böyle bir şey var demek

1) test string testing new string. 2) that is also a new string no new line. 3) here also no new lines.

Çıktı böyle bir şey olmalı

1) test string testing new string.

2) that is also a new string no new line.

3) here also no new lines.

Bir regex i nasıl yapabilirim?

3 Cevap

$outputstring = preg_replace('/([0-9]+)\)/', "\n$1)", $inputstring);

Ardından basamak herhangi bir set eşleşen bir ), bir ), ardından bu rakam ardından bir satır değiştirir değişmez.

Aslında örnek çıktıda gibi arasına boş bir satır olacaksa istiyorsanız (metin satırı sonuna kadar, ve sonra başka bir boş satır eklemek için bir yeni satır gerekir beri), aslında iki satırsonlarını eklemek isterdim. Sadece \n\n yerine böyle bir durumda ise, ikinci argüman \n yapmak.

Ayrıca bir numaralı nokta ile başlar, bu dizenin başında bir yeni satır katacak, böylece lider yeni satır istemiyorsanız sonradan dize kırpmak isteyebilirsiniz unutmayın.

$result = preg_replace('/(?<!\A|\n\n)(?=[0-9]+\))/m', '\n\n', $subject);

Dav çözeltisi gibi aynı şeyi yapacağız ama aynı zamanda tek başına dize başında numaralarını bırakacak (bu durumda 1)). Zaten iki linebreaks onlardan önce varsa o da yalnız sayılar bırakacaktır.

Kullanıcı preg_replace Fonksiyon

$ Str = ".. 1) testi dize de yeni bir dize olduğunu) yeni bir dize 2 test yeni 3 hat) burada da yeni bir hat.";

print preg_replace("/(\d+\))/","\n$1" , $str);