我有2张外卡
并且两种模式都匹配字符串“PersonalBlue M14P $ 3,500 / 80%; $ 35 Copay 4次访问; 50%Rx w / Mat”
<?php
eregi('PersonalBlue M.*Mat', 'PersonalBlue M14P $3,500/80%; $35 Copay 4 Visits; 50% Rx w/Mat', $matches);
eregi('PersonalBlue M.*Copay.*Mat', 'PersonalBlue M14P $3,500/80%; $35 Copay 4 Visits; 50% Rx w/Mat', $matches2);
echo "<br>";
echo strlen ($matches[0]);
echo "<br>";
echo strlen ($matches2[0]);
?>
两者的匹配字符串长度相同。我需要第一张外卡应该与字符串“PersonalBlue M09P $ 2,500 / 80%; 50%Rx w / Mat”匹配,但不能与“PersonalBlue M14P $ 3,500 / 80%; $ 35 Copay 4次访问; 50%Rx w / Mat”
什么是合适的第一张外卡?
答案 0 :(得分:0)
如果我正确关注,您希望'PersonalBlue M14P $3,500/80%; $35 Copay 4 Visits; 50% Rx w/Mat'
仅匹配'PersonalBlue M.*Copay.*Mat'
,而不匹配'PersonalBlue M.*Mat'
行的内容。
如果'PersonalBlue M.*Mat'
更改为'PersonalBlue M.*(^Copay).*Mat'
,则如果Copay位于PersonalBlue M
和Mat
之间,则不会匹配。
<?php
eregi('PersonalBlue M.*(^Copay).*Mat', 'PersonalBlue M14P $3,500/80%; $35 Copay 4 Visits; 50% Rx w/Mat', $matches);
eregi('PersonalBlue M.*Copay.*Mat', 'PersonalBlue M14P $3,500/80%; $35 Copay 4 Visits; 50% Rx w/Mat', $matches2);
echo "<br>";
echo strlen ($matches[0]); // outputs 0
echo "<br>";
echo strlen ($matches2[0]); // outputs 62
?>
正如@ yes123指出的那样,eregi
已被弃用,您可能希望改为查看preg_match。