Как получить предыдущее слово с регулярным выражением?
У меня есть такой путь:
C: \ Development.TFS \ Examn \ R4-ветвь \Web\OrganisationManager\ Themes \ голубой \ CSS
И мне нужно регулярное выражение, чтобы вывести слово "синий" оттуда. Я пытался, но пока не нашел решения. Он практически получает слово перед последним словом из этой строки. Пожалуйста, помогите, спасибо
5 ответов
(\w+)\W+\w+$
совпадает со вторым по последнему слову, фиксирует его в обратной ссылке нет. 1, затем соответствует одному или нескольким несловарным символам, затем последнему слову и затем EOL.
Если вы на самом деле не хотите, чтобы фактические слова, но элементы пути соответствовали (даже если они содержат несловарные символы), тогда
([^\\:]+)\\[^\\]+$
может сделать лучшую работу.
Редактировать: Добавлено :
в группу "от второго до последнего слова", чтобы регулярное выражение могло обрабатывать и относительные пути.
Вы не можете просто разделить строку, используя символ '\', а затем получить splitResult[splitResult.Count-1]?
вы всегда можете заменить '\' на разделитель пути в вашей среде, чтобы получить более согласованные результаты
Вы должны найти этот шаблон в строке: ([\w\s.-]+)\\[\w\s.-]+$
, Первая группа будет содержать слово "синий" в вашем случае. Точный синтаксис регулярных выражений и доступа к группам зависит от вашего языка программирования.
if (eregi('themes\\([az].+)\\css', $subject)) { # Успешное сопоставление} else { # Неудачная попытка сопоставления}
Пример PHP, чтобы получить слово синий.