Регулярное выражение для соответствия строке (1 + символы), который НЕ заканчивается в .ext (расширение)

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

13
задан Michiel van Oosterhout 12 October 2012 в 14:28
поделиться

3 ответа

Прием должен использовать отрицательный lookbehind.

, Если Вам нужен просто ответ "да"/"нет":

(?<!\.asp)$

, Если необходимо соответствовать целому URL:

^.*(?<!\.asp)$

Эти regexes будут работать с любым URL, где имя файла происходит в конце URL (т.е. URL без запроса или фрагмента). Я предполагаю, что Ваши URL соответствуют этому ограничению, учитывая regex .asp$ в Вашем вопросе. Если Вы хотите, чтобы это работало со всеми URL, попробуйте это:

^[^#?]+(?<!\.asp)([#?]|$)

Или это, если Вы хотите, чтобы regex соответствовал целому URL:

^[^#?]+(?<!\.asp)([#?].+|$)
40
ответ дан 1 December 2019 в 17:55
поделиться

Не regexp, но Строка c#. Метод EndsWith, который мог легко сделать задание.

т.е.

string test1 = "me.asp" ;
string test2 = "me.aspx" ;

test1.EndsWith(".asp") // true;
test2.EndsWith(".asp") // false ;
3
ответ дан 1 December 2019 в 17:55
поделиться

Попробуйте это

^((?!\.asp$).)*$
2
ответ дан 1 December 2019 в 17:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: