दिलचस्प पोस्ट
एक पीएनजी छवि सर्वर-साइड को कैसे सहेज सकता है, बेस 64 डेटा स्ट्रिंग से क्यों नहीं "सभी नियंत्रण पथ एक मान लौटाते हैं" चेतावनी है और कोई त्रुटि नहीं? PHP v4 UUID उत्पन्न करने के लिए फ़ंक्शन Iframe पर क्लिक ईवेंट जोड़ें मैं mysqldump से एक डंप फ़ाइल को कैसे पुनर्स्थापित करूं? परियोजना वरीयताओं को आयात करना / निर्यात करना एक कंटेनर व्यू के भीतर समान रूप से अंतरिक्ष के कई विचार पायथन में सिंगल आइटम बार-बार एन टाइम्स की सूची बनाएं संरेखित अक्षरों के स्ट्रिंग निकालने के लिए स्प्लिट रीगेक्स फ़ाइल प्रगति के लिए प्रत्येक तालिका सेल में प्रगति बार जोड़ना – जावा PHP 5.2 में यूनिकोड श्वेतस्थान ट्रिम करें एंड्रॉइड में मोबाइल डिवाइस के अक्षांश और देशांतर कैसे प्राप्त करें? मॉकिटो का उपयोग कुछ तरीकों से नकली करने के लिए करते हैं, लेकिन अन्य नहीं प्रथम श्रेणी नागरिक समारोह क्या है? एंड्रॉइड: स्लाइडिंग ड्रॉवर की ऊंचाई wrap_content के साथ सेट की जा सकती है?

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);