Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Прием должен использовать отрицательный lookbehind.
, Если Вам нужен просто ответ "да"/"нет":
(?<!\.asp)$
, Если необходимо соответствовать целому URL:
^.*(?<!\.asp)$
Эти regexes будут работать с любым URL, где имя файла происходит в конце URL (т.е. URL без запроса или фрагмента). Я предполагаю, что Ваши URL соответствуют этому ограничению, учитывая regex .asp$ в Вашем вопросе. Если Вы хотите, чтобы это работало со всеми URL, попробуйте это:
^[^#?]+(?<!\.asp)([#?]|$)
Или это, если Вы хотите, чтобы regex соответствовал целому URL:
^[^#?]+(?<!\.asp)([#?].+|$)
Не regexp, но Строка c#. Метод EndsWith, который мог легко сделать задание.
т.е.
string test1 = "me.asp" ;
string test2 = "me.aspx" ;
test1.EndsWith(".asp") // true;
test2.EndsWith(".asp") // false ;