Ошибка в Regex для набора символов, фиксированной длины и шагов в начале и конце строки

вы можете попробовать что-то вроде

DROP TABLE IF EXISTS  pictures;
CREATE TABLE pictures(picture_id INT(11), `dt` DATE, followers INT(11));
INSERT INTO pictures VALUES
(2,'2018-07-13',4553),
(2,'2018-07-13',4552),
(2,'2018-07-13',4557),
(2,'2018-07-13',4577),

(3,'2018-07-13',4355),
(3,'2018-07-13',4351),
(3,'2018-07-13',4353),
(3,'2018-07-13',4374);

Удалить запрос

DELETE P FROM pictures p 
    LEFT JOIN (
        SELECT picture_id, dt, MAX(followers) AS fol 
        FROM pictures WHERE dt ='2018-07-13' GROUP BY picture_id
    ) AS main
ON main.dt = p.dt
WHERE main.picture_id = p.picture_id
AND main.fol  <>  p.followers;

Надеюсь, это решит вашу проблему.

2
задан Ramandeep Singh 19 January 2019 в 06:33
поделиться

2 ответа

Вы можете использовать это регулярное выражение:

^(?!\s)[a-zA-Z\d$#@ ]{1,5}(?<!\s)$

Демонстрация RegEx

Подробности RegEx:

  • ^: Старт
  • (?!\s): Отрицательный взгляд, не запускать пробел при запуске
  • [a-zA-Z\d$#@ ]{1,5}: разрешить длину этого символа от 1 до 5
  • (?<!\s): отрицательный вид сзади, не допускать пробела до конца
  • $: конец
0
ответ дан anubhava 19 January 2019 в 06:33
поделиться

Вот шаблон, который должен соответствовать вашим двум требованиям:

^\S(?:.{0,3}\S)?$

Это говорит о том, что соответствует:

\S        an initial non whitespace character
(
    .{0,3}    zero to three of any character (whitespace or non whitespace)
    \S        a mandatory ending whitespace character
)?        the entire quantity optional

Демо

0
ответ дан Tim Biegeleisen 19 January 2019 в 06:33
поделиться
Другие вопросы по тегам:

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