#regex
#регулярное выражение
Вопрос:
Мне нужно помочь для символов выражения регулярных выражений между двумя строками. Если не найдено, вывод второго символа будет представлять собой все предложение после первого символа.
Первый символ = «-p-» Второй символ = «?»
-p-sentence? => output = sentence
-p-sentence => output = sentence.
Может ли кто-нибудь помочь мне с этим?
Ответ №1:
С помощью этого регулярного выражения вы можете получить результат с группой 1:
-p-(.*?)(?:?|$)
Смотрите результат здесь
Комментарии:
1. Привет, мне тоже нужны другие вещи. Если строка похожа на «-p-?», я не хочу никакого совпадения. Как я могу это сделать.
2. Это потому, что регулярное выражение предполагает, что искомая строка заканчивается на a
?
. В этом случае, каково ожидаемое поведение?3. Ожидаемое поведение, когда начинается с «-p-» и заканчивается на «?», и между ними ничего не должно совпадать.
4. В этой версии регулярное выражение ожидает по крайней мере один символ между
-p-
и?
:-p-([^?] ?)(?:?|$)
5. Спасибо. Это работает.