Ответ 1
Для этого вам не нужно regex, используйте trim():
$words = ' my words ';
$words = trim($words);
var_dump($words);
// string(8) "my words"
Эта функция возвращает строку с пробелом, разделенным с начала и конца строки.
У меня есть два слова, которые оживляют пространство, конечно, и много пробелов до и после, мне нужно сделать, чтобы удалить пробелы до и после без промежуточного момента.
Как удалить пробелы до и после него?
Для этого вам не нужно regex, используйте trim():
$words = ' my words ';
$words = trim($words);
var_dump($words);
// string(8) "my words"
Эта функция возвращает строку с пробелом, разделенным с начала и конца строки.
Для полноты (поскольку этот вопрос отмечен regex
), здесь выполняется повторная реализация trim()
в regex:
function preg_trim($subject) {
$regex = "/\s*(\.*)\s*/s";
if (preg_match ($regex, $subject, $matches)) {
$subject = $matches[1];
}
return $subject;
}
$words = ' my words ';
$words = preg_trim($words);
var_dump($words);
// string(8) "my words"
Почему-то два решения выше не работали для меня, поэтому я придумал это решение.
function cleanSpaces($string) {
while(substr($string, 0,1)==" ")
{
$string = substr($string, 1);
cleanSpaces($string);
}
while(substr($string, -1)==" ")
{
$string = substr($string, 0, -1);
cleanSpaces($string);
}
return $string;
}