इस बंटवारे और विराम चिह्न के साथ कोई संबंध नहीं है; तुम सिर्फ पत्र (और संख्या) के बारे में परवाह है, और सिर्फ एक नियमित अभिव्यक्ति हैं:
import re
def getWords(text):
return re.compile('\w+').findall(text)
डेमो:
>>> re.compile('\w+').findall('Hello world, my name is...James the 2nd!')
['Hello', 'world', 'my', 'name', 'is', 'James', 'the', '2nd']
आप संख्या के बारे में परवाह नहीं करते हैं, \w
[A-Za-z]
के साथ सिर्फ पत्र के लिए की जगह , या संकुचन, आदि शामिल करने के लिए [A-Za-z']
आदि। संभवतः अन्य रेगेक्स के साथ वर्णमाला-गैर-न्यूमेरिक वर्ण वर्ग (जैसे उच्चारण के साथ अक्षरों) को शामिल करने के लिए प्रशंसनीय तरीके हैं।
मैं लगभग इस सवाल का जवाब यहां: Split Strings with Multiple Delimiters?
लेकिन अपने प्रश्न के तहत निर्दिष्ट वास्तव में है:
['this', 'is', 'an', 'example']
- या
['this', 'is', 'an', '', 'example']
: यदि आप चाहते 'this is: an example'
में विभाजित किया जा करने के लिए है?
मुझे लगता है कि यह पहला मामला था।
मैं क्या चाहते है [इस ',' ',' 'एक, उदाहरण' है]। रेगेक्स आयात किए बिना कोई तरीका है? यदि हम केवल non ascii_letters को '' के साथ प्रतिस्थापित कर सकते हैं, तो स्ट्रिंग को शब्दों में शब्दों में विभाजित कर सकते हैं, क्या यह काम करेगा? - जेम्स स्मिथ 2 मिनट पहले
regexp सबसे सुंदर है, लेकिन हाँ, तो आप इस प्रकार है के रूप में कर सकता है:
def getWords(text):
"""
Returns a list of words, where a word is defined as a
maximally connected substring of uppercase or lowercase
alphabetic letters, as defined by "a".isalpha()
>>> get_words('Hello world, my name is... Élise!') # works in python3
['Hello', 'world', 'my', 'name', 'is', 'Élise']
"""
return ''.join((c if c.isalnum() else ' ') for c in text).split()
या .isalpha()
Sidenote: आप भी कर सकते थे निम्न कार्य करें, हालांकि इसे एक और मानक लाइब्रेरी आयात करने की आवश्यकता है:
from itertools import *
# groupby is generally always overkill and makes for unreadable code
# ... but is fun
def getWords(text):
return [
''.join(chars)
for isWord,chars in
groupby(' My name, is test!', lambda c:c.isalnum())
if isWord
]
यदि यह गृहकार्य है, तो शायद वे दो राज्यीय फिनिट स्टेट मशीन की तरह एक अनिवार्य चीज़ की तलाश कर रहे हैं जहां राज्य "आखिरी चरित्र एक पत्र था" और यदि राज्य पत्र -> गैर -जलेटर तो आप एक शब्द आउटपुट करते हैं। ऐसा मत करो; यह प्रोग्राम के लिए एक अच्छा तरीका नहीं है (हालांकि कभी-कभी अमूर्तता उपयोगी होती है)।
मैंने आपके लिए अपना प्रश्न स्वरूपित किया। कृपया अगली बार 'कोड' बटन (' {} ') का उपयोग करें। – Johnsyweb