Как я могу распознать строки, которые не заканчиваются символом косой черты (‘/’), используя регулярное выражение?

#regex

#регулярное выражение

Вопрос:

Как я могу сопоставить строку, которая не заканчивается / . Я знаю, что могу это сделать, //$/ и оно будет соответствовать, если строка заканчивается на / , но как я могу проверить, не так ли это?

Комментарии:

1. Вы также можете просто проверить, является ли последний символ строки косой чертой или нет … с помощью обычных функций обработки строк. В JavaScript: str.charAt(str.length-1) !== '/' .

2. @Nikolay: Пожалуйста, вознаградите людей, которые помогали вам в прошлом, и примите ответы на ваши старые вопросы. Спасибо.

Ответ №1:

Вы можете использовать класс отрицательных символов:

 /[^/]$/
 

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

 /[^/]$|^$/
 

Другой подход заключается в использовании отрицательного внешнего вида, но обратите внимание, что многие популярные движки регулярных выражений не поддерживают внешний вид:

 /(?<!/)$/
 

Ответ №2:

Вы можете сказать «не характер», делая [^...] это. В этом случае вы можете сказать «не делать обратную косую черту».: /[^/]$/

Ответ №3:

[^/]$

^ отрицает любое выражение символьного класса.

Комментарии:

1. Я бы хотел увидеть эти переговоры 🙂

2. Возможно, отрицание? @TimPietzcker 🙂