Я пытаюсь написать регулярное выражение, которое должно отображать строку до той части, где она находит пробел, а затем дефис «-». Если он не находит этот шаблон, он должен отображать всю строку. в строке могут быть другие пробелы или дефисы.Регулярное выражение: соответствие строки до определенных символов
Следующие регулярные выражения работает для большинства значений строк, где нужная часть пойманных в $ 1:
^([^ ]+[^-]+)(-).+
входных строк и совпадающих в группе 1 выше регулярного выражения -
- Лондона-Париж Токио -> Лондон-Париж
- Лондон Мадрид - Париж-Берлин-Рим - Токио -> Лондон Мадрид
- Лондон Париж - Берлин Токио -> Лондон Париж
- Лондон Париж -> Лондон Париж
Однако выше регулярное выражение не соответствует следующий случай:
- Лондон Париж (некоторые-текст) - берлин/Токио
Я пробовал несколько вариантов регулярного выражения, также с отрицательным взглядом, но безрезультатно.
Любая помощь будет оценена! Благодаря
EDIT:Спасибо всем за полезные и пояснительные предложения, однако ответ на @Vince ниже работало идеально подходит для моих потребностей. Я добавил комментарий ниже
Спасибо @Vince. Ваш последний вариант кажется применимым к моему делу, я попробую ваше регулярное выражение! – nkrgupta
@ M42, пожалуйста, определите «Не работает», потому что я тестировал его, и он работает для меня с этими двумя строками. – Vince
@nkrgupta Я был бы признателен, если бы вы приняли мой ответ, если это решение, с которым вы идете :) – Vince