php - regex for extracting hash tags without spaces -
मैं इसका उपयोग कर रहा हूं:
$ t = "#hashtag #goodhash_tag संयुक्त राज्य # L33t यह "; $ QueryVariable = ""; If (preg_match_all ('/ (^ | \ s) (# \ w +) /', $ t, $ arrHashTags) gt; 0) {array_filter ($ arrHashTags); ($ ArrHashTags) array_unique; $ Count = count ($ arrHashTags [2]); यदि ($ count & gt; 1) {$ counter = 1; विदेशी मुद्रा ($ arrHashTags [2] $ strHashTag के रूप में) {यदि (preg_match ('/ # \ d * [a-z _] + / i', $ strHashTag)) {if ($ counter == $ count) {$ queryVariable = $ StrHashTag; } और {$ queryVariable = $ strHashTag। "और"; } $ NewTest = str_replace ($ arrHashTags [2], "", $ टी); } $ काउंटर = $ काउंटर + 1; }}} Echo $ queryVariable। "& Lt; br & gt;"; // यह टैग की सूची $ newTest गूंज; // यह शेष टेक्स्ट है ऊपर $ t पर आधारित आउटपुट है: #hashtag और #goodhash_tag और # l33t संयुक्त राज्य यह पहली समस्या:
अगर $ t = '# हैशटैग # अच्छाहैश_टैग संयुक्त राज्यों # l33t this'; यानी दो टैग्स के बीच अंतरिक्ष के बिना, आउटपुट हो जाता है: #hashtag और # l33t #goodhash_tag संयुक्त राज्य इस दूसरी समस्या: < P> अगर $ t = '#hashtag #goodhash_tag united states # l33t यह # 123'; अर्थात एक अवैध टैग # 123 के साथ यह किसी भी तरह से निकाले गए टैगों की मेरी सूची में परेशान करता है $ queryVariable जैसे उत्पादन हो जाता है #hashtag और #goodhash_tag और # l33t और // ध्यान दें अतिरिक्त 'और' संयुक्त राज्यों यह कृपया इन दोनों पर कोई मदद कर सकता है?
इतने सारे चयन आदि के लिए। आपका रेगेक्स आप बस निम्नलिखित हो सकते हैं:
$ t = "#hashtag #goodhash_tag संयुक्त राज्य # l33t यह # 123 # tte # anothertag sth"; $ QueryVariable = ""; Preg_match_all ('/ (# [A-z _] \ w +) /', $ t, $ arrHashTags); Print_r ($ arrHashTags [1]);
उन्हें और के साथ स्ट्रिंग के रूप में प्राप्त करने के लिए, आप implode का उपयोग कर सकते हैं। $ queryVariable = implode ($ ArrHashTags [1], "और"); शेष पाठ के लिए, आपके पास preg_replace या str_replace हो सकता है (जो भी आप के साथ सहज हैं)।
यहां है।
Comments
Post a Comment