Я хочу избавиться от второй части переменной PHP, которая имеет фиксированный формат, но числа всегда разные. Поэтому я не могу использовать простой str_replace. Я ищу решение для регулярных выражений, чтобы исправить это.
$string = "First example from this part 10 t/m 16 it has to be removed";
$string = "Second example from this part 12 t/m 22 it has to be removed";
Должны стать:
$string = "First example";
$string = "Second example";
Значит, вам всегда нужны два первых слова? Почему только решение с регулярным выражением? Есть так много других решений, которые могут это сделать






Возможно, вы могли бы использовать взорваться и взорваться и использовать пробел в качестве разделителя, чтобы получить первые 2 слова:
$strings = [
"First example from this part 10 t/m 16 it has to be removed",
"Second example from this part 12 t/m 22 it has to be removed"
];
foreach ($strings as $string) {
$parts = explode(" ", $string);
echo implode(" ", [$parts[0], $parts[1]]);
}
Если вы хотите использовать регулярное выражение, вы можете использовать:
Вы можете использовать explode, implode и array_slice. Это намного быстрее и требует меньше памяти, чем регулярное выражение. Explode создает массив строк, разделенных пробелом. Array_slice (в данном случае) принимает два первых элемента массива. Implode создает строку из массива (array_slice два элемента) и добавляет пробел между ними.
$string = "First example from this part 10 t/m 16 it has to be removed";
echo implode(" ", array_slice(explode(" ", $string), 0,2)); // First example
echo "\n";
$string = "Second example from this part 12 t/m 22 it has to be removed";
echo implode(" ", array_slice(explode(" ", $string), 0,2)); // Second example
Если вы настаиваете на регулярном выражении, это поможет.
$re = '/(.*?\s.*?\s)/';
$str = 'First example from this part 10 t/m 16 it has to be removed';
preg_match($re, $str, $match);
echo $match[1]; // First example
Шаблон ищет любые символы, пробел, любые символы и снова пробел.
Если вы не продемонстрируете нам свои усилия по ее решению, это будет закрыто как не по теме.