Регулярное выражение между двумя строками

#regex

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

Вопрос:

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

Первый символ = «-p-» Второй символ = «?»

 -p-sentence? => output = sentence
-p-sentence => output = sentence.
 

Может ли кто-нибудь помочь мне с этим?

Ответ №1:

С помощью этого регулярного выражения вы можете получить результат с группой 1:

-p-(.*?)(?:?|$)

Смотрите результат здесь

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

1. Привет, мне тоже нужны другие вещи. Если строка похожа на «-p-?», я не хочу никакого совпадения. Как я могу это сделать.

2. Это потому, что регулярное выражение предполагает, что искомая строка заканчивается на a ? . В этом случае, каково ожидаемое поведение?

3. Ожидаемое поведение, когда начинается с «-p-» и заканчивается на «?», и между ними ничего не должно совпадать.

4. В этой версии регулярное выражение ожидает по крайней мере один символ между -p- и ? : -p-([^?] ?)(?:?|$)

5. Спасибо. Это работает.