Я пытаюсь определить каждый элемент этого регулярного выражения: "(/.*)?"
== вот чему я научился сам:
() == группируя регекс вместе
/ == ???
. == равно любому одному символу
* == равно нулю или более предыдущему символу (в данном случае, был бы предыдущий символ ". "?)
?== равным нулю или одному из предшествующих символов (возможно что угодно/все, представленное (/.*) правильно?)
== Могу я получить помощь в заполнении пробелов? Например: Что означает "/" в этом контексте?
Прежде всего, есть несколько разных ароматов регулярных выражений; Простой GREP
, расширенный Exep
, Perl-подобный; И, вероятно, больше. Они тонко отличаются; Он начинается с группировки, как (Foo | Bar | Baz)
, который чистый GREP
не поддерживает, но EgeP
и Perl DO.
В вашем конкретном примере вы правильно расшифруете детали. /
буквально является прямой слепой без какого-либо особого значения. Если бы это была обратная косание \
, он сберет следующий символ, то есть, если он имеет особое значение в том контексте, это проиграло бы, это особое значение: \.
означает «буквальный период», а не «любой характер».
И вот улов с различными вариантами: вам нужно знать, какой актуален в вашем контексте. Если это расширенные регулярные выражения , ,
(
и
действительно означает группировку, если это простые регулярные выражения (GREP), это буквальные скобки.
Все книги были написаны по теме, и в Интернете есть много учебных пособий. Возможно, вы захотите начать с MAN GREP
, а затем работать на пути вперед.
Многие экзотические части регулярного выражения очень редко нужны; Вы можете в основном получать с основы и посмотреть больше тайных вещей, когда они нуждаются в них (или когда вам нужно иметь смысл кого-то другого кода).