Есть ли какая-либо функция для сравнения строки с двумя регулярными выражениями за раз в php

Я нашел preg_match и preg_match_all , но они будут работать только с одним регулярным выражением за раз.

function match(){
    $pattern = array(
        '/^\-?\+?[0-9e1-9]+$/',
        '/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9 ]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/'
    );
    $string = '234';
    $pattern_mod = import(",",$pattern);
    preg_match($pattern_mod ,$string);

это то, что я хочу сделать

0
nl ja de
Как выглядят шаблоны регулярных выражений? Возможно, вы можете просто сделать это в одном :)
добавлено автор PeeHaa, источник
Можете ли вы дать нам конкретный пример того, что вы хотели бы сделать? Составьте имя функции, вставьте два регулярных выражения, которые вы хотите использовать, и опишите, используя слова и код, что вы хотели бы видеть. PeeHaa почти наверняка прав в том, что то, что вы делаете, возможно, может быть сделано с использованием одного регулярного выражения, но мы не можем быть уверены, пока вы не покажете нам, что вы на самом деле пытаетесь выполнить.
добавлено автор Charles, источник

3 ответы

Вы можете использовать regex lookahead, в котором субъект сначала попытается сопоставить foo, и они попытаются сопоставить бар. Вот так:

$regexPass='/^(?=((.*[A-Za-z].*[0-9].*)|(.*[0-9].*[A-Za-z].*)))(.{6,})$/';

Регулярное выражение выше говорит, что оно должно соответствовать первому выражению ((. * [A-Za-z]. * [0-9]. *) | (. * [0-9]. * [A-Za -z]. *))) в этом случае буквенно-цифровое с по меньшей мере одним номером и одним летером, И ИХ, соответствующее не менее 6 цифрам.

В более простом способе вы можете сопоставить foo, и у них есть n на конце

$regexPass='/^(?=.\*foo.\*)(.\*n)$/';
2
добавлено

If I've "decrypted" correctly your question, I suppose that you have simply to use and (if have to match both),or(if have to match at least one) operators with preg_match or preg_match_all PHP function.
This is programming baby :)

Как это

$string='myString';

if( (preg_match(pattern,$string) and (preg_match(otherPattern,$string) )
{
 //do things
 [...]
}

or

if( (preg_match(pattern,$string) or (preg_match(otherPattern,$string) )
{
 //do things
 [...]
}

Где pattern и otherPattern - ваши шаблоны regexp

1
добавлено
@Jelmer_ обновлено
добавлено автор DonCallisto, источник
пожалуйста, добавьте документацию и/или пример кода, чтобы показать нам, что вы имеете в виду. Тогда я выберу это :)
добавлено автор Jelmer, источник
@DonCallisto Promise - это обещание. Готово :)
добавлено автор Jelmer, источник
но, к сожалению, я получаю шаблон как массив if ((preg_match ($ pattern [], $ string) {// некоторый код}, который я не хочу использовать для цикла
добавлено автор Ajay Gandham, источник

У меня есть два варианта, вы можете использовать любой, который соответствует вашим потребностям (я использую и условию для примера) -

1)

$subject = "abcdef";
$pattern = '/^def/';
$result = preg_match($pattern, substr($subject,3));
$result1 = preg_match("/php/i", "PHP is the web scripting language of choice.");
echo ($result && $result1)?"true" :"false"

2)

 echo (preg_match($pattern, substr($subject,3)) && preg_match("/php/i", "PHP is the web scripting language of choice."))?"true" :"false";

Хотя обе имеют почти одинаковые линии, но способ кода отличается, выберите тот, который соответствует вашему вкусу.

0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp