Heim  >  Fragen und Antworten  >  Hauptteil

Problem mit regulären Ausdrücken*

<?php

$zz = '/Audi*/';

$string = "Audi Audi 2500 ist mein Favorit";

if(preg_match($zz, $ string, $ Übereinstimmungen)){

echo 'Übereinstimmung, das Ergebnis ist:';

var_dump($matches);

}else{

echo 'Keine Übereinstimmung gefunden';

}

?>

Warum Ist das Ausgabeergebnis „Audi“ statt „Audi Audi“ oder „Audi Di“? Wie kommt es, dass in zwei Fällen nicht alle extrahiert wurden?

益伦益伦2549 Tage vor1518

Antworte allen(8)Ich werde antworten

  • 又白又帅又可爱

    又白又帅又可爱2017-11-20 12:15:33

    使用preg_match应该匹配到“奥迪”,使用preg_match_all应该匹配到“奥迪奥迪迪”,

    这是理论结果,可实际上正则匹配中文的例子我还没有见到过,正则只能检查是不是中文和限制长度,而且是用的中文的字节码,类似这种:u4e00-u9fa5

    Antwort
    0
  • 益伦

    好吧,试了一下中文确实很多不行,我以后再少用中文做例子

    益伦 · 2017-11-20 23:17:33
  • 路过

    路过2017-11-18 10:27:36

    preg_match 只匹配一个

    preg_match_all 才是全部匹配结果

    建议去查查手册

    Antwort
    0
  • 益伦

    <?php $zz = '/250*/'; $string = "迪奥和奥迪25000都是我最爱"; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?> 越来越乱了,那这代码结果为什么是25000呢,而不是你说得250?

    益伦 · 2017-11-18 11:01:48
    益伦

    匹配它前面一个字符任意遍(0或任意次)

    益伦 · 2017-11-18 11:08:10
    益伦

    好吧,谢谢你愿意解答

    益伦 · 2017-11-20 23:12:45
    路过

    你知道 * 的意思吗?

    路过 · 2017-11-18 11:03:33
    路过

    看手册去吧

    路过 · 2017-11-18 11:39:39
  • StornierenAntwort