Если существует, мне нужно удалить \r\n\r\n
в самом начале и/или в самом конце строки.php regex - удалять r n r n в самом начале И в самом конце строки
Моя проблема: я не мог достичь своей цели с помощью кодов ниже.
//if exists, remove \r\n\r\n at the very beginning
$str = preg_replace('/^(\r\n\r\n)/', '', $str);
//if exists, remove \r\n\r\n at the very end
$str = preg_replace('/$(\r\n\r\n)/', '', $str);
Возможно, мой исходный вид выходного файла html может дать вам некоторые подсказки. Я не знаю причину, но теги <br />
не бок о бок. Они позиционируют друг друга как друг друга.
<br />
<br />
some text
...
...
some text<br />
<br />
Также ниже, я разделяю весь код обработки строк. Мои проблемные 2 строки кода являются частью приведенного ниже кода. (Остальные части, кроме двух строк кода выше, хорошо работают)
function convert_str ($str)
{
// remove excess whitespace
// looks for a one or more spaces and replaces them all with a single space.
$str = preg_replace('/ +/', ' ', $str);
// check for instances of more than two line breaks in a row
// and then change them to a total of two line breaks
$str = preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\r\n\r\n", $str);
//if exists, remove \r\n\r\n at the very beginning
$str = preg_replace('/^(\r\n\r\n)/', '', $str);
//if exists, remove \r\n\r\n at the very end
$str = preg_replace('/$(\r\n\r\n)/', '', $str);
//if exists, remove 1 space character just before any \r\n
$str = str_replace(" \r\n", "\r\n", $str);
//if exists, remove 1 space character just after any \r\n
$str = str_replace("\r\n ", "\r\n", $str);
// if exists; remove 1 space character just before punctuations below:
// $punc = array('.',',',';',':','...','?','!','-','—','/','\\','“','”','‘','’','"','\'','(',')','[',']','’','{','}','*','&','#','^','<','>','|');
$punc = array(' .',' ,',' ;',' :',' ...',' ?',' !',' -',' —',' /',' \\',' “',' ”',' ‘',' ’',' "',' \'',' (',')',' [',' ]',' ’',' {',' }',' *',' &',' #',' ^',' <',' >',' |');
$replace = array('.',',',';',':','...','?','!','-','—','/','\\','“','”','‘','’','"','\'','(',')','[',']','’','{','}','*','&','#','^','<','>','|');
$str = str_replace($punc,$replace,$str);
return $str;
}
Не могли бы вы исправить меня?
Благодаря
BR
Вы знаете о [** подрезать **] (http://php.net/manual/en/function.trim.php) правильно? – elclanrs
@elclanrs, что я ошибочно настаивал на использовании preg_replace, сделал меня слепым, я думаю, до тех пор, пока обрезание не будет упоминать ответы. Я постыдился. большое спасибо. ваш комментарий - хороший урок для меня. –
также с использованием регулярного выражения для строки, которая проста, это действительно плохо! – ITroubs