दिलचस्प पोस्ट
असंगत स्तंभ गिनती आयात के लिए SSIS कार्य? नेविगेशनदृश्य और कस्टम लेआउट एक आवश्यक नामावली विदेशी कुंजी का कोई भी उदाहरण? mod_rewrite: यूआरएल से क्वेरी स्ट्रिंग को हटा दें? एक मॉडल और रिलेशनशिप फ़ील्ड का नाम बदलने के लिए Django माइग्रेशन स्ट्रैटेजी बाहरी पथ को पुनर्प्राप्त करने वाले कैसपेलेयर को क्रॉप करें GitHub पर पूरी तरह से गिट रेपो और रिमोट से फ़ाइलें निकालें एक स्टिक आंकड़ा, एंकरपॉर्प, एनीमेशन, या कुछ और चल रहा है …? बहुरूपता का वर्णन करने की कोशिश करें जितना आसान हो सकता है कैसे ठीक से बंद जावा निष्पादक सेवा मैं WinForms एप्लिकेशन को कमांड लाइन आर्ग्यूमेंट कैसे पारित करूं? जेएसन प्रतिक्रिया के लिए रूट तत्व जोड़ना (डीजेंगो-बाकी-फ्रेमवर्क) यह क्या है जो एन्यूम बनाता है। हसफ्लैग बहुत धीमा है? सी # में एक संरचना के बाइट क्रमबद्धता के लिए बाइट गतिविधि में नहीं होने वाले स्थानों में getLayoutInflater () को कॉल करें

PHP में वाक्यों में एक पैराग्राफ़ विस्फोट करें

मैं उपयोग कर रहा हूँ

explode(".",$mystring) 

वाक्य में एक पैराग्राफ को विभाजित करने के लिए हालांकि, ये अलग-अलग विराम चिह्नों के साथ निष्कर्ष निकाला गया वाक्यों का पालन नहीं करते हैं! ? :;

क्या एक सरणी को एक चरित्र के बजाय सीमांकक के रूप में उपयोग करने का कोई तरीका है? वैकल्पिक रूप से विभिन्न विराम चिह्नों का उपयोग कर बंटवारे का एक और सुव्यवस्थित तरीका है?

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

 explode(("." || "?" || "!"),$mystring) 

उम्मीद है कि यह काम नहीं कर रहा था …

Solutions Collecting From Web of "PHP में वाक्यों में एक पैराग्राफ़ विस्फोट करें"

तुम कर सकते हो:

 preg_split('/\.|\?|!/',$mystring); 

या (सरल):

 preg_split('/[.?!]/',$mystring); 

preg_split() बाद स्ट्रिंग को विभाजित करने के लिए आप preg_split() इस्तेमाल कर सकते हैं एक preg_split() जा सकता है . , ; , : , ? , ! , .. वास्तविक विराम चिह्न को बरकरार रखते हुए:

कोड:

 $subject = 'abc sdfs. def ghi; this is an.email@addre.ss! asdasdasd? abc xyz'; // split on whitespace between sentences preceded by a punctuation mark $result = preg_split('/(?<=[.?!;:])\s+/', $subject, -1, PREG_SPLIT_NO_EMPTY); print_r($result); 

परिणाम:

 Array ( [0] => abc sdfs. [1] => def ghi; [2] => this is an.email@addre.ss! [3] => asdasdasd? [4] => abc xyz ) 

यह मानते हुए कि आप वास्तव में अंतिम परिणाम के साथ विराम चिह्न का चिह्न चाहते हैं, आपने कोशिश की है:

  $mystring = str_replace("?","?---",str_replace(".",".---",str_replace("!","!---",$mystring))); $tmp = explode("---",$mystring); 

जो आपके विवाद चिह्नों को कुशलता में छोड़ देंगे

 preg_split('/\s+|[.?!]/',$string); 

एक संभावित समस्या हो सकती है यदि कोई ईमेल पता है, क्योंकि वह इसे एक नई लाइन पर आधे रास्ते पर विभाजित कर सकता है।

Preg_split का उपयोग करें और इसे [\। | \ ?!] पर विभाजित करने के लिए एक रेगेक्स दें

आप preg_split कोशिश कर सकते हैं

 $sentences = preg_split("/[\.\?\!,;]+/", $mystring); 

कृपया ध्यान दें यह विराम चिह्नों को हटा देगा। यदि आप व्हाटस्पेस को अग्रणी या पीछे छोड़ना चाहते हैं

 $sentences = preg_split("/[\.\?\!,;]+\s+?/", $mystring); 
 $mylist = preg_split("/[\.|\?!:;]/", $mystring); 

विस्फोट के लिए आपके पास कई सीमांकक नहीं हो सकते वही है जो preg_split(); के लिए है। लेकिन फिर भी, यह सीमांकक पर फट पड़ता है, इसलिए आपको विराम चिह्नों के बिना वाकई वाक्यों को मिलेगा। आप preg_split को एक कदम आगे ले जा सकते हैं और इसे अपने स्वयं के तत्वों में PREG_SPLIT_DELIM_CAPTURE के साथ वापस लौटने के लिए ध्वनित कर सकते हैं और फिर लौटए सरणी में वाक्य को फांदाना और विराम चिह्न को चलाने के लिए कुछ पाश चलाएं, या सिर्फ preg_match_all(); उपयोग करें preg_match_all(); :

 preg_match_all('~.*?[?.!]~s', $string, $sentences);