2010-07-26 5 views
1

Ok Я пытаюсь выяснить это регулярное выражение, где у меня есть слово, и с обоих концов слова это может быть пробел или символ. Вот пример:PHP регулярное выражение, пробел или символ Нет

preg_match_all("/(?)(" . $piece . ")(?)/is", $fk, $sub); 

Где (?), я хочу, чтобы быть «Один символ, который может быть только пространство или нет символов на всех». Я пытаюсь в основном сделать функцию, которая проверяет, является ли что-то слово или нет на основе его окружающих символов. И $piece - это слово, поэтому оно должно быть само по себе, а не частью другого более длинного слова, если вы знаете, что я имею в виду. Благодаря

+1

Возможно, вы ищете утверждение границы слова '\ b'. – Gumbo

ответ

5

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

preg_match_all("/(^|)(" . $piece . ")(|$)/is", $fk, $sub);

(^|) означает: Матч либо начало строки (так называемый «нет символа») или пробел. Значение (|$) означает: совместить пробел или конец строки (опять же, символ «нет»). Начало и конец строки - это единственные места, где нет символа.

+0

Не будет ли использование \ b более подходящим? –

+1

\ b соответствует символам без слова. Он специально попросил «никакого символа» или места. \ b соответствует, например. (и это не так. – jmz

Смежные вопросы