मैं अंत में एक सफेद जगह वाले सभी तारों को खोजने की कोशिश कर रहा हूं।

तो उदाहरण के लिए 'a', 'बैक-टू-स्कूल','डिनर ऑफ','ग्रील्ड लैम्ब' लेकिन नहीं 'जेफरी।' और 'आर्क': 'आर्किटेक्चर और डिजाइन' वे तार हैं जिन्हें मैं अनदेखा करना चाहूंगा।

मैंने यह कोशिश की है

p = re.compile('\"[a-zA-Z]+ \w[^,]\"')

लेकिन यह काम नहीं लग रहा है। क्या इस रेगेक्स में कुछ याद आ रही है?

'D0': 'Ina prepares ' 'a ' 'back-to-school ' 'dinner of ' 'grilled lamb ' 'chops for ' 'Jeffrey.', 'Distrme': 'Food ' 'Network', 'Epis': 2, 'Arch': 'Architecture & Design',

0
greenee 29 फरवरी 2020, 23:02
.*\w$ के बारे में क्या?
 – 
kmaork
29 फरवरी 2020, 23:07
मैंने भी यही कोशिश की है। वह काम नहीं करता। पी = पुन: संकलित करें ('.*\w$')
 – 
greenee
29 फरवरी 2020, 23:09
इसके बजाय re.compile(r'.*\w$') आज़माएं
 – 
kmaork
29 फरवरी 2020, 23:10
क्या आप व्हाइटस्पेस से मिलान करने के लिए \w का उपयोग कर रहे हैं? मेरा मानना ​​है कि अल्फ़ान्यूमेरिक और अंडरस्कोर से मेल खाता है। हो सकता है कि आप \s का उपयोग करना चाहते थे?
 – 
steinar
29 फरवरी 2020, 23:11
अभी भी कोई परिणाम नहीं मिल रहा है: p = re.compile(r'.*\w$') res = p.findall(line)
 – 
greenee
29 फरवरी 2020, 23:12

2 जवाब

स्ट्रिंग के अंत के आधार पर खोज करने का प्रयास करें। उदाहरण के लिए, re.compile('[a-zA-Z]+\s\Z') अल्फ़ान्यूमेरिक वर्णों के बाद एक रिक्त स्थान वर्ण के साथ समाप्त होने वाले उदाहरण पाएंगे।

मैं निम्नलिखित चीट शीट का संदर्भ देता हूं चूंकि रेगेक्स बनाने के लिए बहुत सारे विकल्प हैं।

0
Conrad 29 फरवरी 2020, 23:12
धन्यवाद मैंने \Z हटा दिया क्योंकि यह कोई परिणाम नहीं दिखा रहा था। लेकिन इसके बाद इसमें शामिल है जिसे मैं भी बाहर करना चाहता हूं।
 – 
greenee
29 फरवरी 2020, 23:17
सफेद स्थान के बाद एक स्ट्रिंग वाले किसी भी परिणाम को बाहर करना एक और बात होगी
 – 
greenee
29 फरवरी 2020, 23:20
ईमानदारी से मैं रेगेक्स की तुलना में इस समस्या के लिए एक अलग दृष्टिकोण लेता हूं क्योंकि आप जिस चीज की परवाह करते हैं वह एक स्ट्रिंग के अंत में व्हाइटस्पेस ढूंढ रहा है। मैं अंतिम अनुक्रमणिका स्थिति को कॉल करता हूं और एक सरल if कथन करता हूं। तो अगर आपके पास p = 'grilled lamb ' नामक स्ट्रिंग है तो if p[-1] == ' ' @greenee . करें
 – 
Conrad
29 फरवरी 2020, 23:28

सकारात्मक लुकहेड का उपयोग करने का प्रयास करें:

[a-zA-Z -]+(?=\s$)

इसे यहां आजमाएं।

रेगेक्स स्पष्टीकरण:

[a-zA-Z -]+       Match this set of chars - restrict as needed for your case
(?=\s$)           Positive lookahead - match only if string end on a space
0
vs97 29 फरवरी 2020, 23:50