दिलचस्प पोस्ट
JTable getrelectedRow चयनित पंक्ति अनुक्रमणिका वापस नहीं करता है तुलना करने के लिए परे का उपयोग करने के लिए विजुअल स्टूडियो को कॉन्फ़िगर कैसे करें एक स्ट्रिंग के भीतर एक निर्दिष्ट वर्ण के सभी अनुक्रमणिका खोजना विंडोज में झिलमिलाहट को खत्म करने के लिए कैसे। स्क्रॉलिंग करते समय कस्टम नियंत्रण? __मैन__.py क्या है? क्या आप किसी फ़ंक्शन को PHP सरणी में संग्रहीत कर सकते हैं? कोणीय / यूआई-राउटर – मैं यूआरएल को रीफ्रेशिंग सब कुछ के बिना कैसे अपडेट कर सकता हूं? जावा यूयूआईडी में एक .NET गाइड कैसे पढ़ा जाए अजगर: सिंटेक्स त्रुटि: स्ट्रिंग स्कैनिंग करते समय ईओएल जावास्क्रिप्ट – एक अन्य सरणी के आधार पर क्रमबद्ध सरणी एक डाटाफ्रेम स्ट्रिंग कॉलम को कई विभिन्न कॉलम में विभाजित करना PHP में फ़ंक्शन के अंदर, बाहर से चर प्राप्त करें अनाधिकृत वेबपिया कॉल 401 के बजाय लौटने वाले लॉगिन पेज एंड्रॉइड एसडी कार्ड फ़ोल्डर में लिखें सिस्टम क्या करता है। डबल मतलब

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