Как переместить текст из конца строки в начало - PullRequest
0 голосов
/ 30 декабря 2018

Вот две строки из некоторого текста, который я хотел изменить

Dorset Rd (5) - 2018-12-14 11-01-05
Crampton Chas - Sandarra Blvd - 2018-12-27 12-31-56

Я пытаюсь переместить дату и время от конца каждой строки к началу, чтобы получить это

2018-12-14 11-01-05 - Dorset Rd (5)
2018-12-27 12-31-56 - Crampton Chas - Sandarra Blvd

Читая этот форум (спасибо вам всем), я придумал следующее регулярное выражение

(^.*)\s-\s(.*$)

И использовал это как замену

$2 - $1

Это работаетхорошо, но у меня есть два вопроса:

  1. Мне интересно, почему '\ s- \ s' обнаружил последнее вхождение '-' вместо первого?
  2. Может лиэто лучше сделать, если взять последние 19 символов и как-то переместить их в начало?

1 Ответ

0 голосов
/ 30 декабря 2018

Мне интересно, почему '\ s- \ s' обнаружил последнее вхождение '-' вместо первого?

Поскольку первый * является жадным.Сначала он сопоставляется со всем, затем возвращается до тех пор, пока материал не совпадет с остальной частью строки.См. этот вопрос .

Можно ли сделать это лучше, если взять последние 19 символов и каким-то образом переместить их в начало?

ЕслиВаш формат даты всегда будет содержать 19 символов, конечно!

^(.*) - (.{19})$

замените на ту же замену.

Не уверен, что это «лучше», хотя, не зная, что вы подразумеваете под «лучше»».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...