Regex в Textwrangler - Удалить строку между двумя символами - PullRequest
0 голосов
/ 31 января 2019

У меня есть текстовый файл с несколькими статистическими данными о погоде для популярных городов, который включает в себя не только максимумы и минимумы за текущий день, но и вчерашнюю погоду, как показано ниже:

City/Town, State;Yesterday’s High Temp (F);Yesterday’s Low Temp (F);Today’s High Temp (F);Today’s Low Temp (F);Weather Condition;Wind Direction;Wind Speed (MPH);Humidity (%);Chance of Precip. (%);UV Index

Atlanta, GA;43;22;44;22;Partly sunny, chilly;NW;9;38%;7%;4
Atlantic City, NJ;45;24;37;9;A snow squall;WNW;22;36%;58%;3
Baltimore, MD;40;23;34;8;A snow squall, windy;NW;19;37%;57%;1
Bismarck, ND;-10;-29;-8;-15;Frigid;SSE;6;73%;58%;2

I 'Я хотел бы иметь возможность ввести команду регулярного выражения, которая удалит первые два числа после состояния, удалив вчерашнюю высокую и низкую температуру, чтобы это выглядело так:

City/Town, State;Yesterday’s High Temp (F);Yesterday’s Low Temp (F);Today’s High Temp (F);Today’s Low Temp (F);Weather Condition;Wind Direction;Wind Speed (MPH);Humidity (%);Chance of Precip. (%);UV Index

Atlanta, GA;44;22;Partly sunny, chilly;NW;9;38%;7%;4
Atlantic City, NJ;37;9;A snow squall;WNW;22;36%;58%;3
Baltimore, MD;34;8;A snow squall, windy;NW;19;37%;57%;1
Bismarck, ND;-8;-15;Frigid;SSE;6;73%;58%;2

Есть ли простой способсделать это?

1 Ответ

0 голосов
/ 31 января 2019

Соответствующая часть:

-?\d+;-?\d+;(-?\d+;-?\d+)

Замена:

$1

Разбивка:

Check for possible hyphen
-?
Check for number
\d+
Check for semicolon
;
Do the above again
-?\d+;
Start of capturing group
(
Do above check 2 times again
-?\d+;-?\d+
End of capturing group
)

$1 означает заменить его содержимымпервая группа захвата.

Вы также можете использовать это, если вы не хотите делать какие-либо подстановки:

-?\d+;-?\d+;(?=-?\d+;-?\d+)

Он использует предварительный просмотр, чтобы проверить, есть ли еще два числа передоб этом.

...