रेगेक्स एक लिंक का हिस्सा निकालें (PHP)

मुझे कुछ लिंक मिला है:

/3/topic/video1148288/

और मैं वीडियो के बाद नंबर लेना चाहता हूं। मैं केवल संख्याओं के साथ लिंक को प्रतिस्थापित नहीं कर सकता क्योंकि वास्तविक वीडियो आईडी से पहले बहुत कुछ है।

मैंने कोशिश की

$embed = preg_match("#\b/video([0-9][0-9][0-9][0-9][0-9][0-9][0-9])/#", $raw);

लेकिन यह काम नहीं करता है।

कोई मदद?

2
जोड़ा संपादित
विचारों: 1
परिभाषित करें <�कोड> काम नहीं करता । यह काम करता है और यहां एक डेमो है। हालांकि मैं उन सभी नंबरों को [0-9] + से बदल दूंगा जिसका मतलब है कि अंक एक या अधिक बार मेल खाता है। यदि आप निश्चित हैं कि हमेशा 7 संख्याएं होंगी, तो आप [0-9] {7} का उपयोग कर सकते हैं।
जोड़ा लेखक HamZa, स्रोत

3 उत्तर

preg_match('/(?<=video)\d+/i', $raw, $match);
echo $match[0];
1
जोड़ा

इसे आज़माएं:

$raw = "/3/topic/video1148288/";
preg_match("#/video(\d+)/#", $raw, $matches);
$embed = $matches[1];

Working example: http://3v4l.org/oLPMX

आपके प्रयास को देखने से ध्यान देने योग्य एक बात यह है कि preg_match वास्तविक मिलान नहीं, एक सत्य/झूठा मूल्य देता है। वे मेरे उदाहरण में तीसरे param ( $ match ) में पाए जाते हैं।

1
जोड़ा
thx यह काम किया, मैं अब गूंगा महसूस करता हूँ: \
जोड़ा लेखक ItalianOne, स्रोत
पहले से ही किया, क्या मैंने किया?
जोड़ा लेखक ItalianOne, स्रोत
@ user3005467 मदद करने में खुशी =)
जोड़ा लेखक jszobody, स्रोत
$raw = "/3/topic/video1148288/";

preg_match("/video(\d+)/", $raw, $results);

print "$results[1]";
1
जोड़ा
क्या होगा अगर लिंक /3/topic/video1148288/foo था? । * एक बहुत अच्छा विचार नहीं है, आईएमओ।
जोड़ा लेखक Amal Murali, स्रोत
जोड़ा लेखक HamZa, स्रोत
हाँ आप सही हैं \ d + :-)
जोड़ा लेखक ederwander, स्रोत