Ben Ruby çalışma var bir regex PHP değil;

1 Cevap php

Ben yakut bilmiyorum. Ben php (yani dilbilgisi verilen rfc1738 üzerine http://www.a-k-r.org/abnf/ çalıştırarak) yakut tarafından oluşturulan aşağıdaki regex kullanmaya çalışıyorum. Bu php maç için başarısız olduğunu, ancak başarıyla yakut eşleştirme. Herkes php ait ve bu tutarsızlığı açıklayabilir regexes Ruby'nin kullanım arasında ne farklar görüyor mu?

http:\/\/(?:(?:(?:(?:[0-9a-z]|[0-9a-z](?:[\x2d0-9a-z]?)*[0-9a-z])\x2e)?)*(?:[a-z]|[a-z](?:[\x2d0-9a-z]?)*[0-9a-z])|\d+\x2e\d+\x2e\d+\x2e\d+)(?::\d+)?(?:\/(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*(?:(?:\/(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)*(?:\x3f(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)?/i

Since you all love regexes so much, how about an alternate solution. Given the ABNF in an rfc, I want a way (in php) to check if an arbitrary string is in the grammar.

APG 64-bit sistemde derlemek için başarısız,

VTC F ree değil,

ve ben başka bir tür araçları bulamadı. Ben de bir regex kullanmayı tercih ediyorum, ama ben başarı için geldim yakın bulunuyor.

1 Cevap

Bu PHP kullanmaya çalıştığınız kodu bir örnek görmek güzel, ama (sizin giriş değişkeni $ _SERVER ["HTTP_REFERER"] değiştirmeyi unutmayın) aşağıdaki denemek istiyorum:

if (preg_match('#http://(?:(?:(?:(?:[0-9a-z]|[0-9a-z](?:[\\x2d0-9a-z]?)*[0-9a-z])\\x2e)?)*(?:[a-z]|[a-z](?:[\\x2d0-9a-z]?)*[0-9a-z])|\\d+\\x2e\\d+\\x2e\\d+\\x2e\\d+)(?::\\d+)?(?:/(?:(?:[!\\x24\'-\\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*(?:(?:/(?:(?:[!\\x24\'-\\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)*(?:\\x3f(?:(?:[!\\x24\'-\\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)?#i', $_SERVER["HTTP_REFERER"], $l_Results)) {
    $result = $l_Results[1];
} else {
    $result = "";
}