действительно ли возможно использовать regex в C++?

Не нашел другого решения, кроме введения новой «оборонительной работы» посередине с:

command: (( "X$(date +%F)" != "X$(cat defensive_trigger_date)" )) && ( echo $(date +%F) > defensive_trigger_date; echo $(date +%F) )

Логика высокого уровня:

  • Если текущая системная дата не является равно дате запуска последнего задания (из файла) сбросить текущую системную дату в файл и завершить работу с нулевым кодом выхода (выполнить задание)
  • В противном случае завершить работу с ненулевым кодом выхода (выполнить задание) [112 ]
5
задан Community 23 May 2017 в 12:20
поделиться

10 ответов

В ванильном языке C ++ нет поддержки регулярных выражений. Однако есть несколько библиотек, которые поддерживают Regex. Boost является популярным.

Ознакомьтесь с реализацией Boost's Regex.

18
ответ дан 18 December 2019 в 05:31
поделиться

PCRE - это де-факто стандартная библиотека регулярных выражений для C (и она также работает в C ++).

(что делает ваш редактор, я не знаю. Использование Библиотека, подобная PCRE или любой другой из предложенных, не меняет синтаксис C - ваши определения регулярных выражений всегда будут храниться в строках.)

8
ответ дан 18 December 2019 в 05:31
поделиться

Вы можете использовать опцию draggable helper для перетаскивания групп элементов.

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

$('#dragSource li').draggable({
  helper: function(){
    var selected = $('#dragSource input:checked').parents('li');
    if (selected.length === 0) {
      selected = $(this);
    }
    var container = $('<div/>').attr('id', 'draggingContainer');
    container.append(selected.clone());
    return container; 
  }
}); 

Демо

Я установил демо с перетаскиваемыми изображениями с флажками и несколько изменчивой разметкой. Нажмите " #dragSource input '). each (function () {var $ this = $ (this); if ($ this.prop (' checked ')) {$ this.prop (' checked ', false);} else {$ this.prop ('check', true);}}); вернуть ложь; }); });

 body {font-family: sans-serif; переполнение-х: скрыто; } div {margin: 5px; отступы: 0; } ul {margin: 0; отступы: 0; } li {list-style: none; отступы: 0; поле: 0; плыть налево; пустое пространство: nowrap; } #selectActions span, #selectActions li {float: left; обивка: 5px; } .droppableContainer {ширина: 48%; плыть налево; min-height: 200px} .droppableContainer li {height: 90px; ширина: 110 пикселей; поле: 2px; цвет фона: белый; нижний слой: 4px; } .droppableContainer img {width: 90px; максимальная высота: 90 пикселей; максимальная ширина: 90 пикселей; ширина: 90 пикселей; выравнивание по вертикали: среднее; } .droppableContainer input {height: 90px; выравнивание по вертикали: среднее; } #draggingContainer {width: 48%; } #draggingContainer input {visibility: hidden; } #dropTarget {border: 3px dashed grey; } #dropTarget input {visibility: hidden; }