Поэтому я пытаюсь использовать регулярные выражения, но, похоже, не могу сделать это правильно

#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]* , так как в классе символов нет подчеркивания.