0

preg_matchandを見つけましpreg_match_allたが、これらは一度に 1 つの正規表現でしか機能しません。

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);

これが私がやりたいことです

4

3 に答える 3

2

サブジェクトが最初に foo と一致しようとし、それらが bar と一致しようとする正規表現先読みを使用できます。そのようです:

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

上記の正規表現 ((.*[A-Za-z].*[0-9].*)|(.*[0-9].*[A-Za-z].*)))は、この場合、英数字の最初の式に少なくとも 1 つの数字と 1 つの文字が一致し、かつそれらが少なくとも 6 桁に一致する必要があることを示しています。

より簡単な方法では、foo に一致させることができ、最後に

$regexPass='/^(?=.\*foo.\*)(.\*n)$/';
于 2012-12-28T11:31:36.060 に答える
1

私があなたの質問を正しく「復号化」した場合、(両方に一致する必要がある場合)、(少なくとも 1 つに一致する必要がある場合)またはphp 関数を使用する演算子を使用するだけでよいと思います。これは赤ちゃんのプログラミングです:)andorpreg_matchpreg_match_all

このような

$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

于 2012-12-28T10:46:42.530 に答える
0

2 つのオプションがあります。必要に応じてどれでも使用できます (例として and 条件を使用しています)-

1)

$subject = "abcdef";<br />
$pattern = '/^def/'; <br />
$result = preg_match($pattern, substr($subject,3)); <br/>
$result1 = preg_match("/php/i", "PHP is the web scripting language of choice."); <br />
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";

どちらもほぼ同じ行ですが、コードの書き方が異なりますので、好みに合わせて選んでください。

于 2012-12-28T11:38:56.737 に答える