Sunday 15 August 2010

regex - Regular expression returns empty array in php even though the regular expression is correct -


यह मेरी नियमित अभिव्यक्ति है:

  $ pattern_new = "/ & lt; td & gt; ( \ n | \ रों) * (। & lt; अवधि (\ n | \ s |)? * & LT; \ / strong & gt; (\ n | \ रों) * \ $ (& lt;? कीमत & gt; ([0-? ।।? 9] *)) *) \ $ (*) (\ n | \ रों) *। & lt;? / ";   

यह नमूना पैटर्न है, जिसमें से मुझे एक मैच करना है:

  & lt; td & gt; & lt; मजबूत & gt; .zx & lt; / strong & gt; & lt ; / Td & gt; & lt; td & gt; & lt; स्पैन वर्ग = "ऑफ़र" & gt; & lt; मजबूत & gt; एक्सस्री: & lt; br & gt; & lt; / strong & gt; $ 299 xxxxx & amp; एक्स; एक्सएक्स & lt; span class = "fineprint_number" & gt; 2 & lt; / span & gt; & lt; / span & gt; & lt; br & gt; डी में & amp; ईए की $ 399 & lt; / टीडी & gt; & lt; टीडी & gt; zxcddcdcdcdc & lt; / टीडी & gt; & lt; / टीआर & gt; & lt; टीआर वर्ग = "अंधेरे" & gt; & lt; टीडी & gt ; & lt; strong & gt; .aa.rr & lt; / strong & gt; & lt; / टीडी & gt; & lt; टीडी & gt; & lt; span class = "प्रस्ताव" & gt; & lt; strong & gt; xscre: & lt; br & gt; & lt; / strong & gt; $ 99 xxxxx & amp; x; xx & LT; span class = "fineprint_number" & gt; 2 & lt; / span & gt; & lt; / span & gt; & lt; br & gt; डी में & amp; EAE की $ 199 & lt; / टीडी & gt; & lt; टीडी & gt; xxxx & lt; / टीडी & gt; & lt; / टीआर & gt ; & lt; टीआर वर्ग = "बार" & gt; & lt; टीडी colspan = "3" & gt; & lt; / टीडी & gt; & lt; / टीआर & gt; & lt; टीआर वर्ग = "उज्ज्वल" & gt; & lt; टीडी & gt; & lt; strong & gt ;. vfd & lt; / strong & gt; & lt; / टीडी & gt; & lt; टीडी & gt; & lt; span class = "प्रस्ताव" & gt; & lt; strong & gt; xscre: & lt; br & gt; & lt; / strong & gt; $ 99 xxxxx & amp; x; xx & LT; span class = " fineprint_number "& gt; 2 & lt; / span & gt ; & Lt; / span & gt; & lt; br & gt; डु & amp; ee; s $ 199 & lt; / td & gt; & lt; टीडी & gt; xxxxxxxx & lt; / td & gt; & lt; / tr & gt; & lt; tr वर्ग = "अंधेरे" & gt; & lt; td & gt; & lt ; strong & gt; .qwe & lt; / strong & gt; & lt; / टीडी & gt; & lt; टीडी & gt; & lt; span class = "प्रस्ताव" & gt; & lt; strong & gt; xxx & lt; br & gt; & lt; / strong & gt; $ 99 xxxc; ओ & LT; span class = " fineprint_number "& gt; 2 & lt; / span & gt;   

यहां मैं PHP में क्या कर रहा हूं

  $ pattern_new = "/ & lt; td & gt; (\ n | \ s) *? (& Lt; अवधि (\ n | \ s |।) * & LT; \ / strong & gt; (\ n | \ रों) * \ $?।? (& lt; कीमत & gt;) * ([। 0-9] *) *) \ $ (\ n | \ रों) * & lt (*।?); / ";? $ Source = file_get_contents ("https://www.abc.com/sources/data.txt"); Preg_match_all ($ pattern_new, $ स्रोत, $ match_newprice, PREG_PATTERN_ORDER); गूंज $ स्रोत; print_r ($ match_newprice);   

$ match_newprice एक खाली सरणी लौट रहा है।

जब मैं एक regex tester का उपयोग कर रहा हूं या मैं एक परिपूर्ण मैच नहीं मिल रहा है मुद्दों पर बिल्कुल भी, लेकिन जब मैं php preg_match_all का उपयोग कर रहा हूं तो यह एक खाली सरणी लौट रहा है। मैंने pcre.backtrack_limit बढ़ा दिया है लेकिन इसकी अभी भी यही समस्या है मुझे समस्या को समझ में नहीं आता। किसी भी मदद की बहुत सराहना की जाएगी।

एक और समस्या जो PHP से संबंधित है: < पूर्व> & lt;? Php गूंज "\ $"। PHP_EOL; प्रतिध्वनि '\ $'। PHP_EOL;

परिणाम:

  $ \ $   

... दोहरे उद्धृत स्ट्रिंग्स में $ एक चर की शुरुआत को दर्शाता है, और अगर आपको एक बेअर $ मतलब है तो बचने की आवश्यकता है अपने रेगेक्स के आसपास एकल उद्धरण रखें & amp; यह संभवतः ठीक होगा (अगर आपने विस्तार से देखा नहीं है, तो आप / x विकल्प का उपयोग करना चाहते हैं और कुछ स्वरूपण व्हाइटस्पेस / टिप्पणियां जोड़ सकते हैं यदि आपको अब से आधा वर्ष डीबग करना है )।

No comments:

Post a Comment