#regex
Вопрос:
После выполнения некоторой строковой магии это строки, которые я хочу использовать в качестве регулярного выражения
^api/school/$
^api/school/[a-zA-Z0-9]*/$
^api/internal/courses/$
^api/school/search/$
^api/school/[a-zA-Z0-9]*/rooms/$
^api/school/[a-zA-Z0-9]*/rooms/[a-zA-Z0-9]*/$
Мой вопрос в том, почему эти строки не совпадают с этими соответственно?
api/school/
api/school/123abc/
api/internal/courses/123ikl
api/school/search/school_name
api/school/school_name/rooms/
api/school/123abc/rooms/2/
Ответ №1:
1-й, 2-й и 6-й в порядке. 3-й, 4-й конец с $ означает конец строки, поэтому дополнительные слова «123ikl» и «school_name» не приведут к совпадению. 5-е: [a-zA-Z0-9]*
не совпадает с именем школы, так как нет подчеркивания.
Ответ №2:
Первый, второй и шестой — это хорошо, и они будут совпадать. Третья строка не совпадает, потому что соответствует концу строки, а третья строка, которую вы предлагаете, выходит за ее пределы . $
courses/
То же самое касается и четвертого. Пятый не удастся, потому school_name
что не может совпадать [a-zA-Z0-9]*
, так как в классе символов нет подчеркивания.