С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
41 / 40 / 16
Регистрация: 23.03.2010
Сообщений: 3,122
1

Регулярное выражение

01.08.2018, 11:14. Показов 624. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите по регулярному выражению, мне нужно чтобы проверялось по шаблону, вот к примеру мне нужно проверить такое
PHP
1
2
$vl=' 60x120/70x140 '; // или $vl=' 60.5x120.5/70.5x140.5 ';
if(preg_match('/ [0-9.]+x+[0-9.]+\/+[0-9.]+x+[0-9.] /',$vl)) echo 'ok'; else echo 'no'; ....
По идее должно вывести положительный результат, но нет...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.08.2018, 11:14
Ответы с готовыми решениями:

Регулярное выражение. >,<,=
Нужно выбрать из таблицы только числа больше 1.000 Пишу : &lt;center&gt;&lt;b&gt;\.{3}&lt;\/td&gt; Но теряю...

Регулярное выражение
Всем привет. Задача такая, найти в тексте аналог html тега Не могу понять, как подправить...

Регулярное выражение
3,2,,,, 1,2,3,4,5 1,3,5,4,2 5,3,5,6,4 выражение : ,,,, возвращает 3 последних ряда. ...

Регулярное выражение
Подскажите пожалуйста, как из строки...

9
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
01.08.2018, 12:05 2
Nebiros,

Пробелы в выражении нужно отметить тот так \s. Собсно само выржение :

PHP
1
"/\s+[0-9.]+x+[0-9.]+\/+[0-9.]+x+[0-9.]+\s/"
Вроде работает.
1
259 / 193 / 50
Регистрация: 15.07.2016
Сообщений: 649
01.08.2018, 14:46 3
Упрощаем:
PHP
1
preg_match('! [0-9.]+x[0-9.]+/[0-9.]+x[0-9.]+ !',$vl)
+ означает 1 или более символов, значит после x и / он не нужен. А вот после последнего [0-9.] плюс как раз нужен.
И ограничитель сменить, зачем использовать слэш, если он в регулярке встречается?

Цитата Сообщение от D_Vik Посмотреть сообщение
Пробелы в выражении нужно отметить тот так \s
Для пыха это лишнее.
А вот не использовать начальные/конечные пробельные символы самое то, я бы trimнул строку.
1
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
02.08.2018, 20:43 4
Цитата Сообщение от Nebiros Посмотреть сообщение
[0-9.]
крутое условие: цифры от 0 до 9 или любой другой символ. Мощно!
0
41 / 40 / 16
Регистрация: 23.03.2010
Сообщений: 3,122
02.08.2018, 22:19  [ТС] 5
Цитата Сообщение от otto-fukin Посмотреть сообщение
крутое условие: цифры от 0 до 9 или любой другой символ. Мощно!
а разве не от 0 до 9 и точка?
буквы как бы не пропускает...
0
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
02.08.2018, 22:36 6
и точка. любой символ. хош буквы хош закорючки. просто любой
0
1131 / 681 / 409
Регистрация: 07.11.2015
Сообщений: 1,091
02.08.2018, 23:48 7
otto-fukin, http://php.net/manual/ru/regexp.reference.dot.php
Внутри символьного класса точка не имеет специального значения.
0
Эксперт JS
6496 / 3906 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
05.08.2018, 14:50 8
Да. Единственный косяк ТС - в отсутствии плюса перед последним пробелом.

Можно посоветовать набирать регулярку на Match мелкими кусочками, пока не начнёт глючить.
Хотя так тестировать получится не всегда. Например, с рекурсивными выражениями ужас-ужас.

Добавлено через 11 минут
Имхо, так красивее проверка дробных чисел:
PHP
1
2
$vl=' 60.5x120.5/70.5x140.5 ';
if(preg_match('/ \d+(\.\d+)?x\d+(\.\d+)?\/\d+(\.\d+)?x\d+(\.\d+)? /',$vl)) echo 'ok'; else echo 'no';
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.08.2018, 15:05 9
Тут очень удобно отлаживать регулярки
0
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
08.08.2018, 08:48 10
Цитата Сообщение от Nebiros Посмотреть сообщение
Подскажите по регулярному выражению
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$vl = ' 60x120/70x140 ';
// или так
$vl = ' 60.5x120.5/70.5x140.5 ';
 
// Соответствие найдено, если в строку входит:
$pcre = '~
    \s?           # 1) не обязательный пробельный символ
    \d+           # 2) одна и более цифр
    (?:\.\d+)?    # 3) не обязательная группа символов: точка, после которой следует одна и более цифр
    x             # 4) символ x, означающий сам себя
    \d+           # смотри пункт 2)
    (?:\.\d+)?    # смотри пункт 3)
    /             # 5) символ /, означающий сам себя
    \d+           # смотри пункт 2)
    (?:\.\d+)?    # смотри пункт 3)
    x             # смотри пункт 4)
    \d+           # смотри пункт 2)
    (?:\.\d+)?    # смотри пункт 3)
    \s?           # смотри пункт 1)
~x';
 
if (preg_match($pcre, $vl)) {
    echo 'ok';
} else {
    echo 'no';
}
Смотреть демо
0
08.08.2018, 08:48
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2018, 08:48
Помогаю со студенческими работами здесь

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

регулярное выражение
Имеем строку http://img.yandex.net/i/www/logo.png нужно вытащить то что между и

регулярное выражение
Например есть строка qwerty16 Как проверить что в нее не вложен еще тег к примеру...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru