cari

Rumah  >  Soal Jawab  >  teks badan

java - 正则捕捉中(.*?)和(.*)的区别

Java使用正则匹配捕捉
1 Pattern p = Pattern.compile("name="sign" value="(.*)"/>");
2 Pattern p = Pattern.compile("name="sign" value=*"(.?)**"/>");
第二个比第一个多了一个?号,请问其中区别是什么

伊谢尔伦伊谢尔伦2769 hari yang lalu601

membalas semua(5)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:57:01

    Perbezaan antara tamak dan tidak tamak.

    Ringkasnya, tidak tamak bermakna ia akan berhenti apabila sudah padan, tidak kira ada perlawanan lain nanti.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:57:01

    Apabila ungkapan biasa mengandungi kelayakan yang menerima pengulangan, gelagat biasa ialah memadankan seberapa banyak aksara yang mungkin (sambil masih membenarkan keseluruhan ungkapan dipadankan). Ambil ungkapan ini sebagai contoh: a.*b, ia akan sepadan dengan rentetan terpanjang bermula dengan a dan berakhir dengan b. Jika anda menggunakannya untuk mencari aabab, ia akan sepadan dengan keseluruhan rentetan aabab. Ini dinamakan padanan tamak.
    Kadangkala, kita memerlukan pemadanan yang malas, iaitu pemadanan sesedikit mungkin aksara. Kelayakan yang diberikan di atas boleh ditukar kepada corak padanan malas dengan menambahkan tanda soal ? Dengan cara ini, .*? bermaksud memadankan sebarang bilangan ulangan, tetapi menggunakan ulangan paling sedikit yang akan menjadikan perlawanan keseluruhan berjaya. Sekarang lihat versi malas contoh:
    a.*?b sepadan dengan rentetan terpendek bermula dengan a dan berakhir dengan b. Jika anda menggunakannya pada aabab, ia akan sepadan dengan aab (aksara 1 hingga 3) dan ab (aksara 4 hingga 5).

    Disalin daripada: http://deerchao.net/tutorials... 30 minit pengenalan kepada ungkapan biasa, bahagian yang tamak dan malas

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:57:01

    Yang pertama akan berhenti selepas mencari perlawanan, manakala yang kedua akan mencari semua sasaran yang sepadan.

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:57:01

    Soalan ini melibatkan mod tamak dan mod malas (juga dipanggil mod tidak tamak) dalam ungkapan biasa
    Pertama, mari kita lihat definisi kedua-dua ini

    1. Mod tamak, padanan maksimum*,+,'{n,}',.*semuanya tergolong dalam mod tamak Apa yang dipanggil padanan maksimum, izinkan saya memberi anda contoh

    var pattern = /a.*e/
    console.log("abcd fsdfsdfsesfdfsdfsesdfedfsdfses".match(pattern));        //结果为abcd fsdfsdfsesfdfsdfsesdfedfsdfse
    1. Mod malas, di bawah premis padanan yang berjaya, padankan sesedikit mungkin.
      Masih contoh di atas:

    var pattern = /a.*?e/
    console.log("abcd fsdfsdfsesfdfsdfsesdfedfsdfses".match(pattern));        //结果为abcd fsdfsdfse

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:57:01

    ?Yang paling kecil padanan akan dipilih.

    balas
    0
  • Batalbalas