/ / स्ट्रिंग पैटर्न को अनदेखा कैसे करें जबकि स्ट्रिंग को उस वर्ण द्वारा विभाजित किया जाना है - regex, perl

स्ट्रिंग पैटर्न को अनदेखा कैसे करें जबकि स्ट्रिंग को उस वर्ण द्वारा विभाजित किया जाना है - regex, perl

सबसे पहले, मेरे अंग्रेजी और शीर्षक में भ्रमित विवरण के लिए खेद है।

मेरी समस्या यह है कि मेरे पास प्राकृतिक वाक्यांशों की कई पंक्तियां हैं, मैं इसमें निहित शब्दों की गिनती करना चाहता हूं। मैं पर्ल में निम्नलिखित रेगेक्स के साथ आया हूं:

my @words = split /[ :,.;s/t!"n]+/, $_;

यह ठीक काम करता है सिवाय इसके कि जब "यू.एस.ए." जैसे किसी शब्द के साथ मुठभेड़ होती है तो यह शब्द यू, एस और ए में टूट जाता है, जो अवांछित है। इसे ठीक करने के लिए मुझे क्या करना होगा? धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

मैं रिक्त स्थान के आधार पर विभाजित हूं, लेकिन फिर "शब्दों" की शुरुआत और अंत से किसी भी गैर-शब्द वर्ण हटा दें। U.S.A. के रूप में खत्म हो जाएगा U.S.A

use strict;
use warnings;

local $_ = "hello world, U.S.A., and other places.";

my @words = map { s/^W+|W+$//g; $_ } split /s+/, $_;

use Data::Dump;
dd @words;

आउटपुट

["hello", "world", "U.S.A", "and", "other", "places"]