PHP regex ayraçlar, / vs | vs {}, farklar nelerdir?

2 Cevap php

PCRE'nin PHP kılavuzunda, http://us.php.net/manual/en/pcre.examples.php, geçerli desen 4 örnekler verir:

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

/, | veya kıvırcık parantez bir çift ayraç olarak kullanabilirsiniz, bu yüzden aralarında herhangi bir fark var gibi görünüyor?

2 Cevap

Kapanış sınırlayıcı dışında hiçbir fark, kaçan olmadan görünemez.

Standart sınırlayıcı bir sürü, örneğin kullanıldığı zaman faydalıdır yerine

preg_match("/^http:\\/\\/.+/", $str);

yazabilirsiniz

preg_match("[^http://.+]", $str);

/ kaçmak gerek önlemek için.

Aslında (boşluklar ve ters eğik çizgiler hariç) olmayan herhangi bir alfasayısal sınırlayıcı kullanabilirsiniz

"%^[a-z]%"

hem de çalışır

"*^[a-z]*"

hem de

"!^[a-z]!"