2010-09-23 2 views
4

Я пытаюсь построить регулярное выражение, которое будет соответствовать шаблону, как, например:нужно регулярное выражение, которое соответствует «слово1, WORD2, word3»

word1, word2, word3 

Поэтому в основном я хочу «» дважды появляются и иметь между ними слова. До сих пор я придумал:

$general_content_check = preg_match("/^.*, .*$/", $general_content); 

Но это соответствует только «» несколько раз в строке.

Может кто-нибудь помочь мне с этим, пожалуйста?

ответ

4

Попробуйте

"/^\w+, \w+, \w+$/" 
+0

Да, это работает благодаря Йенсу! – Pavel

7

Это зависит от того, что вы подразумеваете под "словом", но вы можете начать попробовать это:

^[^,]+(?:, +[^,]+){2}$ 

Пояснение:

 
^   Start of line/string. 
[^,]+  A "word" (anything that isn't a comma - including whitespace, etc.) 
(?:  Start non-capturing group 
    , + A comma then any number of spaces 
    [^,]+ A word 
)   Close group 
{2}  Repeat group exactly two times 
$   End of line/string. 

Другие возможные определения " слово ":

  • Все, кроме пробелов или запятой: [^\s,]+
  • только буквы в AZ: [A-Z]+ (по желанию добавить флаг к регистру)
  • Любое письмо в Unicode на любом языке: \p{L}+ (широко не поддерживается)
  • Etc .. .
+0

Хорошее объяснение кода. Очень полезно для начинающих программистов, которым нужны такие объяснения. – matsolof

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