Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: регулярное выражение  (Прочитано 1270 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexgluker

  • Автор темы
  • Любитель
  • *
  • Сообщений: 84
    • Просмотр профиля
регулярное выражение
« : 28 Ноября 2014, 12:57:38 »
подскажите, как написать регулярку вида "оставить только пробел-любое количество цифр-точка-2 цифры-пробел"
так не хочется сдохнуть в червивом дерьме унывающих улиц

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: регулярное выражение
« Ответ #1 : 28 Ноября 2014, 13:02:09 »
подскажите, как написать регулярку ....
Для чего регулятка то - sed sql python php..... :idiot2:
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Master_Sergius

  • Активист
  • *
  • Сообщений: 528
  • i3
    • Просмотр профиля
Re: регулярное выражение
« Ответ #2 : 28 Ноября 2014, 13:31:09 »
подскажите, как написать регулярку вида "оставить только пробел-любое количество цифр-точка-2 цифры-пробел"

Это ж просто:

" [0-9]*\.[0-9]{2}? " (может проканать и без "?")
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: регулярное выражение
« Ответ #3 : 28 Ноября 2014, 13:35:30 »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: регулярное выражение
« Ответ #4 : 28 Ноября 2014, 16:29:19 »
подскажите, как написать регулярку ....
Для чего регулятка то - sed sql python php..... :idiot2:
И еще добавлю: несколько примеров исходного материала + что именно надо из них получить.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alexgluker

  • Автор темы
  • Любитель
  • *
  • Сообщений: 84
    • Просмотр профиля
Re: регулярное выражение
« Ответ #5 : 01 Декабря 2014, 12:16:45 »
подскажите, как написать регулярку ....
Для чего регулятка то - sed sql python php..... :idiot2:
И еще добавлю: несколько примеров исходного материала + что именно надо из них получить.
регулярка для php, сорри
первоначальный вариант не совсем подходит, надо любое кол-во цифр-точка-любое кол-во цифр
сделал так
/[0-9]*\.[0-9]*/и последний вопрос - как указать в preg_replace НЕ равно, чтобы все что не попадает под шаблон затиралось?
так не хочется сдохнуть в червивом дерьме унывающих улиц

Оффлайн SvMidi

  • Активист
  • *
  • Сообщений: 815
    • Просмотр профиля
Re: регулярное выражение
« Ответ #6 : 01 Декабря 2014, 12:23:15 »
отрицание в PHP - !
Я знаю только то, что ничего не знаю, остальные не знают и этого.

Оффлайн alexgluker

  • Автор темы
  • Любитель
  • *
  • Сообщений: 84
    • Просмотр профиля
Re: регулярное выражение
« Ответ #7 : 01 Декабря 2014, 13:37:52 »
отрицание в PHP - !
спасибо, кэп
а применительно к моему примеру? как указать отрицание в шаблоне?
так не хочется сдохнуть в червивом дерьме унывающих улиц

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: регулярное выражение
« Ответ #8 : 01 Декабря 2014, 13:50:27 »
Код: (php) [Выделить]
function getNumbers($string)
{
    $matches = [];
    if (preg_match_all('/[0-9]*\.[0-9]*/', $string, $matches)) {
       return implode('', $matches);
    }

    return '';
}

Оффлайн SvMidi

  • Активист
  • *
  • Сообщений: 815
    • Просмотр профиля
Re: регулярное выражение
« Ответ #9 : 01 Декабря 2014, 14:22:09 »
спасибо, кэп
а применительно к моему примеру? как указать отрицание в шаблоне?
Цитировать
preg_match_all возвращает количество найденных вхождений шаблона (которое может быть и нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки.
Что тут ещё можно добавить?
Я знаю только то, что ничего не знаю, остальные не знают и этого.

Оффлайн alexgluker

  • Автор темы
  • Любитель
  • *
  • Сообщений: 84
    • Просмотр профиля
Re: регулярное выражение
« Ответ #10 : 01 Декабря 2014, 16:41:59 »
.ubuntufan,
спасибо
так не хочется сдохнуть в червивом дерьме унывающих улиц

Оффлайн Back_man

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: регулярное выражение
« Ответ #11 : 02 Декабря 2014, 15:54:02 »
Всем добра.

Подскажите, пжлста, регулярное выражение, чтобы удалить из текстового файла строки, содержащие ТОЛЬКО 8-мь,9-ть,10-ть цифр.
То есть удалить все строки вида: 92845749, 239847289, 4983389453 и т.д.

Оффлайн SvMidi

  • Активист
  • *
  • Сообщений: 815
    • Просмотр профиля
Re: регулярное выражение
« Ответ #12 : 02 Декабря 2014, 17:02:51 »
[0-9]{8,9,10}
Я знаю только то, что ничего не знаю, остальные не знают и этого.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: регулярное выражение
« Ответ #13 : 02 Декабря 2014, 17:09:11 »
SvMidi,
Но-но! :) \b[0-9]\{8,10\}\bесли цифры в виде отдельных "слов"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Back_man

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: регулярное выражение
« Ответ #14 : 02 Декабря 2014, 17:20:30 »
 SvMidi, Azure спасибо за ваши ответы.

Но что-то не выходит каменный цветок.
Ввожу в баше следующее:
cat 1_2.txt | grep -v '^\b[0-9]\{8,10\}\b$' > out.txt

где 1_2.txt, out.txt соответственно входной и выходной файл.

Однако, ничего не отсортировалось.   Я что-то делаю неправильно?

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.