मैं उपयोग कर रहा हूँ
explode(".",$mystring)
वाक्य में एक पैराग्राफ को विभाजित करने के लिए हालांकि, ये अलग-अलग विराम चिह्नों के साथ निष्कर्ष निकाला गया वाक्यों का पालन नहीं करते हैं! ? :;
क्या एक सरणी को एक चरित्र के बजाय सीमांकक के रूप में उपयोग करने का कोई तरीका है? वैकल्पिक रूप से विभिन्न विराम चिह्नों का उपयोग कर बंटवारे का एक और सुव्यवस्थित तरीका है?
मैंने कोशिश की
explode(("." || "?" || "!"),$mystring)
उम्मीद है कि यह काम नहीं कर रहा था …
तुम कर सकते हो:
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);