какое регулярное выражение я должен использовать? - PullRequest
0 голосов
/ 29 июля 2011

Если это моя строка: «блаблабла (blablabla)». Какое регулярное выражение я должен использовать, чтобы разбить строку таким образом, чтобы получить возвращаемое значение:

  1. "блаблабла"
  2. "(блаблабла)"

Кстати, я хочу использовать функцию mb_split.

EDIT Струна также может быть «blablabla blablabla blablabla (блаблабла). Explode () не будет работать из-за этого.

РЕДАКТИРОВАТЬ , это то, что я использую сейчас:

например, $ name = "blabla blabla blabla blabla (блабла)";

$name = explode(' ', $name);
$last = array_pop($name);
$sentence = null; 
foreach ($name as $names) {
$sentence .= $names.' ';
}
$sentence = mb_substr($title, 0, -1, 'UTF-8');

Ответы [ 5 ]

9 голосов
/ 29 июля 2011

На самом деле, вам не нужно регулярное выражение для выполнения такой простой задачи, как разбиение двух слов на пробелы.Используйте explode() вместо

$string = "blablabla (blablaba)";
explode(" ", $string);
7 голосов
/ 29 июля 2011

Нет регулярных выражений вообще, просто используйте explode:

$mystring = "blablabla (blablaba)";
$mywords = explode(" ", $mystring);

Все, что вы делаете, ищет пробел!

1 голос
/ 29 июля 2011

Если вы совпадаете с пробелом, за которым следует '('), шаблон для разделения может быть:

\s(?=\()
1 голос
/ 29 июля 2011

Я бы использовал explode, потому что здесь не нужно регулярное выражение. Если вы все еще хотите использовать mb_split, вы можете разбить на все, что считается пробелом (перевод строки, перевод строки, пробел, табуляция и т. Д.): mb_split("\s", "hello world").

Посмотрите на документы . (Я на самом деле вставил пример здесь:))

1 голос
/ 29 июля 2011
explode(" ", $string);

вам не нужно писать регулярные выражения.

для взрыва

первый аргумент будет пустым, по которому вы хотите экспортировать строку в массив .. а второй аргумент должен быть строкой ..

...