Что это регулярное выражение имею в виду?
preg_match("/^obj(\d+)\-{0,1}(|mi\d{0,1}|critical|questionText|answerText\-{0,1}\d+)$/", $k, $a)
preg_match является функцией PHP, который должен перевести его
Что это регулярное выражение имею в виду?
preg_match("/^obj(\d+)\-{0,1}(|mi\d{0,1}|critical|questionText|answerText\-{0,1}\d+)$/", $k, $a)
preg_match является функцией PHP, который должен перевести его
Это выражение, прокомментировал будет выглядеть
^ // start of line
obj // literal obj
(\d+) // one or more digits (0-9), captured in a group
-{0,1} // optional dash
( // start second capturing group
// nothing
| // ... OR ...
mi\d{0,1} // literal mi, followed by an optional digit
| // ... OR ...
critical // literal critical
| // ... OR ...
questionText // literal questionText
| // ... OR ...
answerText // literal answerText
-{0,1} // optional dash
\d+ // one or more digits (0-9)
) // end of capturing group
$ // end of line
Пример того, что матчи будет
obj1000-critical
или obj1000answerText-100
^obj(\d+)-{0,1}
означает, что строка является началом строки и начинается с obj
, за которым следует число, по меньшей мере, 1 цифра, то есть может быть знаком -
.
(|mi\d{0,1}|critical|questionText|answerText-{0,1}\d+)
означает, что текст является один из следующих:
mi
, который может сопровождаться цифройcritical
questionText
answerText
, который может сопровождаться один знак -
, после чего число не менее 1 цифрыТогда есть конец линии. Поиск чувствителен к регистру.
IT будет соответствовать строке, которая начинается с OBJ, после чего Спальных, необязательного тиром, а затем либо
Примеры:
Это соответствует определенный формат строки, содержащие, f или пример:
obj1-mi5
obj2critical
obj3-questionText
obj4answerText-0
Эти шаблоны выглядят знакомыми?
preg_match
найдет этот узор в $k
и сохранит совпадения в $a
. Сделайте следующее, чтобы узнать, что он нашел.
print_r($a);
Сначала я предложил найти учебник по регулярному выражению и прочитать о том, как они структурированы.Это не является особенно сложным регулярным выражением, поэтому вы должны быть в состоянии понять это с помощью некоторых книг, и это будет означать, что вам не придется спрашивать abotu следующее регулярное выражение, с которым вы сталкиваетесь. ;-)
Что регулярное выражение означает, разбивка выглядит следующим образом:
^ - соответствует началу строки.
OBJ - это буквальный текст так будет соответствовать эти символы в начале строки
(\ d +) - это будет соответствовать одна или несколько цифр (0-9) и кронштейны означает, что они захватываются таким образом, чтобы их можно было использовать после разбора.
- {0,1} - это будет соответствовать 0 или 1 символам "-".
(| mi \ d {0,1} | critical | questionText | answerText- {0,1} \ d +) - снова скобки будут фиксировать это как группу. «|» используется как «или», поэтому он будет соответствовать любому из разделенных значений. Хотя я не уверен, что думаю, что он начинается с «|» может означать, что он будет соответствовать пустой строке.
mi \ d {0,1} - соответствует митральной строке mi, за которой следует 0 или 1 цифра.
критичный, questionText - это как буквальные варианты, которые соответствуют точному тексту
answerText- {0,1} \ d + - это будет соответствовать строковой answerText с последующей необязательным «-» и одну или несколько цифр.
$ - строка должна заканчиваться сразу после предыдущего совпадения.
Надеюсь, это имеет смысл для вас. Как я уже сказал, проверьте некоторые учебники и документы, если вам нужна дополнительная помощь. :)