Основная помощь регулярных выражений - PullRequest
0 голосов
/ 28 апреля 2010

Я новичок в программировании на PHP и пытаюсь проверить поле в форме.

Поле для цветового кода RAL и так будет выглядеть примерно так: RAL 1001. поэтому буквы RAL, а затем 4 цифры.

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

$string_exp = "/^[RAL][0-9 .-]+$/i";

Что я могу сказать, но извините за то, что я полный NOOB в PHP.

Приветствие Бен

Ответы [ 4 ]

1 голос
/ 28 апреля 2010

[RAL] будет соответствовать только одному символу, R, A или L, тогда как вы хотите соответствовать строке "RAL". Так что вы, вероятно, хотите что-то вроде этого,

$string_exp = "/^RAL[0-9]{4}$/";

Это будет соответствовать "RAL1001", но не "RAL1", "RAL 1001", "RAL12345" и т. Д. Если вам нужно пространство между RAL и числом, то также поместите это пространство в регулярное выражение.

1 голос
/ 28 апреля 2010

Удалив избыточные классы символов, вы получите:

/^RAL \d{4}$/i

Обратите внимание, что использование нечувствительного к регистру флага может привести к совпадению даже с такими случаями, как, например, Ral 1245 или raL 9875.

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

Зависит!

...
if( preg_match('/RAL\s*(\d{4})(?!\d)/', $name, $m) ) {
   echo $m[1];
}
...

Это принимает 'someRAL 1234 с текстом'
но не принимает 'RAL 12345'.

Точное регулярное выражение полностью зависит от вашего
контекст или спецификации. Вы должны быть более четко в вашем вопросе.

0 голосов
/ 28 апреля 2010
/^RAL [0-9]{4}$/

Если вы введете буквы такими, какие они есть, они будут найдены как есть. Если вы заключили что-то в [], это означает: «Поиск одного символа, который является одним из них».

Поэтому, начиная с литерала "RAL", он находит литерал "RAL" (или "ral", когда вы применяете флаг i).

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