Регулярное выражение связывает Myname _Mysurname с "" в PHP - PullRequest
1 голос
/ 22 апреля 2010

Мне нужно регулярное выражение, которое заменяет строку вроде этой

"Myname _MySurename"  with "Myname" 

это означает, что мне просто нужно Myname, поэтому _MySurename должно быть вырезано.

я пробовал что-то вроде "/ _ * /", но это заменяет только _ (подчеркивание) Как я могу сделать это в PHP?

Ответы [ 3 ]

2 голосов
/ 22 апреля 2010

Вы можете заменить underscore и следующие word на:

$str = preg_replace('/_\w+/','',$str);

Похоже, у вас также есть пробел после имени. Таким образом, вы можете использовать:

$str = preg_replace('/\s*_\w+/','',$str);
1 голос
/ 22 апреля 2010

Из вашего описания очевидно, что вы
знаете , где ваша строка должна быть разделена .
Поэтому: лучше не использовать подстановку регулярных выражений,
, но использоватьрегулярное выражение:

preg_split('/\s*_/', $text)

Возвращает список разделенных записей, получить первую, например:

...
$names = 'Myname_MySurename'; #  'Myname _MySurename';
# print first element of splitted array
$firstname = array_shift( preg_split('/\s*_/', $names) );
...

С уважением

rbo

0 голосов
/ 22 апреля 2010

Попробуйте:

/\s_.+$/

«Заменить пробел (пробел), за которым следует подчеркивание и количество символов». $ гарантирует, что это совпадает с концом строки.

Это не проверено, но оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...