मैं यह जांचना चाहता हूं कि एक हैशटैग के बाद एक नियमित टेक्स्ट या एक अन्य हैशटैग एक पायथन स्ट्रिंग में है या नहीं। उदाहरण के लिए मामले के लिए:

"my adjectives names #Day #Night which are in the description"

, मुझे झूठा लगता है, क्योंकि पहले हैशटैग के बाद फिर से एक हैशटैग आता है। लेकिन अन्य मामलों में उदाहरण के लिए

"my adjectives names #Day which is in the description" 

मैं सच हो जाऊंगा। मैं पाइथन में नियमित अभिव्यक्ति संचालन के साथ ऐसा कैसे कर सकता हूं?

मैंने कोशिश की:

tweet_text = "my adjectives names #Day #Night which are in the description"
pattern = re.findall(r'\B#\w*[a-zA-Z0-9]+\B#\w*[a-zA-Z0-9]*', tweet_text)
print(pattern)

लेकिन यह मुझे कोई आउटपुट नहीं देता है।

1
Sam Toorchi 26 जून 2019, 14:11

2 जवाब

सबसे बढ़िया उत्तर

दुभाषिया से एक उदाहरण:

>>> import re
>>> pat = re.compile(r'(#\w+\s+){2,}')
>>>
>>> text = 'my adjectives names #Day  which are in the description'
>>> pat.search(text)
>>>
>>> text = 'my adjectives names #Day #Night which are in the description'
>>> pat.search(text)
<_sre.SRE_Match object; span=(20, 32), match='#Day #Night '>
1
Juan Diego Godoy Robles 26 जून 2019, 14:17

ऐसे हैशटैग के लिए जो नहीं हैं और उसके बाद किसी अन्य हैशटैग का उपयोग किया जाता है:

input = "my adjectives names #Day #Night which are in the description"
matches = re.findall(r'#[^#\s]+\b(?!\s+#[^#]+)', input)
print(matches)

['#Night']

और ऐसे हैशटैग के लिए जो हैं और उसके बाद दूसरा हैशटैग आता है, बस नकारात्मक लुकहेड को सकारात्मक के साथ बदलें:

matches = re.findall(r'#[^#\s]+\b(?=\s+#[^#]+)', input)
print(matches)

['#Day']
0
Tim Biegeleisen 26 जून 2019, 14:24