Сделать регулярное выражение игнорировать экранированный вопросительный знак

1

Я пытаюсь заставить мое регулярное выражение работать. У меня есть строка с экранированными вопросительными знаками. Я попытался найти какие-либо руководства или объяснение того, как я могу создать регулярное выражение, которое выбирает только вопросительный знак без экранирования.

Пример вопросительного знака, который ДОЛЖЕН быть найден: Hello, how are you?

Пример вопросительного знака, который НЕ должен: Hello, how are you \?

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

Мне до сих пор удалось сделать \\\? , но он выбирает только экранированный знак вопроса, мне нужна помощь, чтобы он работал, как я объяснил выше.

Большое спасибо, спасибо!

Изменение: для будущего уведомления это было для обратного совместимого движка, в данном случае PHP.

  • 3
    Использовать (?<!\\)\? - Какой у тебя вкус регулярных выражений? Если он поддерживает lookbehinds, вы можете попробовать это.
Теги:

1 ответ

1
Лучший ответ

Я предполагаю, что на вашем входе может быть экранирован только вопросительный знак.

использование

(?<!\\)\?

См. Демонстрацию.

Обратите внимание, что если бы это был JavaScript или другие языки, которые не поддерживают lookbehind, вам нужно будет использовать что-то вроде /(^|[^\\])\?/g

  • 0
    Да, спасибо, поскольку это совместимый с внешним видом движок (PHP). Это похоже на работу. Тогда спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню