Как упростить регулярное выражение, не переписывая одну и ту же группу захвата?

Git rebase используется для того, чтобы пути ветвления в структуре истории и структуры хранилища были линейными.

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

После выполнения rebase мы также избавляемся от дополнительной фиксации, которую мы использовали, чтобы увидеть, выполняем ли мы обычное слияние.

И да, все еще нужно объединиться после успешной перезагрузки, так как команда rebase просто помещает вашу работу поверх ветки, которую вы упомянули во время rebase say master, и делает первое коммит вашей ветки прямым потоком главная ветвь. Это означает, что теперь мы можем выполнить быстрое слияние, чтобы внести изменения из этой ветви в ведущую ветвь.

0
задан Jonathan Leffler 2 March 2019 в 08:20
поделиться

3 ответа

Вы можете определить чередование фрагмента строки и затем использовать его:

var input = "Monday to Friday 6:00 a.m. to 8:00 p.m.";
var alt = "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)";
var re = new RegExp("^" + alt + " (to) " + alt + ".*$");
if (re.test(input)) {
    console.log("valid");
}
else {
    console.log("invalid");
}

0
ответ дан Tim Biegeleisen 2 March 2019 в 08:20
поделиться

Если могут быть сделаны следующие предположения:

  • Вам не нужны отдельные захваты после того, как было выполнено совпадение
  • Шаблон должен появиться в начале [ 1110] входа

Тогда вы можете сделать:

^\b(( to |^)(Monday|Tuesday)){2}\b

Объяснение

  • ^ соответствует началу ввода.
  • \b требует, чтобы первый символ был словом-символом. Он предназначен для предотвращения совпадения «с» в начале строки.
  • {2} требует, чтобы основная часть совпадала дважды подряд
  • ( to |^) теоретически может совпадать либо с «до», либо с началом ввода, но, так как мы впервые знаем, что мы в начале (из-за первого ^), и он не может совпадать с «из-за» из-за предыдущего \b, тогда это неоперация. Во второй раз он больше не может совпадать с началом ввода, поскольку мы уже сопоставили один день, так что только «to» может соответствовать на второй итерации.
  • \b в конце есть, чтобы избежать совпадения с чем-то вроде Tuesdaymorning.
0
ответ дан trincot 2 March 2019 в 08:20
поделиться

Это короче, но и уродливее:

((?:(?:Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day)(?: to )?)+

Хотя это также соответствует чему-то вроде Monday Friday (без to).

Я бы определенно остановился на более крупной версии ради удобства чтения.

0
ответ дан Thiago Curvelo 2 March 2019 в 08:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: