2010-04-01 6 views
12

में एक पंक्ति खोजें और एक पंक्ति प्राप्त करें क्या स्ट्रिंग से खोज करने का कोई तरीका है, एक पंक्ति है जिसमें एक और स्ट्रिंग है और पूरी लाइन पुनर्प्राप्त करें?पाइथन

उदाहरण के लिए:

string = 
    qwertyuiop 
    asdfghjkl 

    zxcvbnm 
    token qwerty 

    asdfghjklñ 

retrieve_line("token") = "token qwerty" 

उत्तर

25

के साथ आप "पूरी लाइन" उल्लेख किया है, तो मैं mystring पूरी पंक्ति है ग्रहण किया।

if "token" in mystring: 
    print mystring 

लेकिन तुम सिर्फ "टोकन qwerty" प्राप्त करना चाहते हैं,

>>> mystring=""" 
...  qwertyuiop 
...  asdfghjkl 
... 
...  zxcvbnm 
...  token qwerty 
... 
...  asdfghjklñ 
... """ 
>>> for item in mystring.split("\n"): 
... if "token" in item: 
...  print item.strip() 
... 
token qwerty 
3

नियमित अभिव्यक्ति

import re 
s=""" 
    qwertyuiop 
    asdfghjkl 

    zxcvbnm 
    token qwerty 

    asdfghjklñ 
""" 
>>> items=re.findall("token.*$",s,re.MULTILINE) 
>>> for x in items: 
...  print x 
... 
token qwerty 
15

आप एक लाइनर पसंद करते हैं:

matched_lines = [line for line in my_string.split('\n') if "substring" in line] 
+0

मैंने गलती से क्लिक किया मेल खाता है "डाउनवोट" बटन! मुझे लगता है कि मुझे इसे ऊपर उठाने के लिए इंतजार करना होगा, या मेरी गलती को सही करने से पहले शायद एक संपादन को पहले रखा जाना चाहिए। –

3
items=re.findall("token.*$",s,re.MULTILINE) 
>>> for x in items: 

तुम भी लाइन प्राप्त कर सकते हैं यदि टोकन

से पहले अन्य वर्ण हैं

'में' यूनिक्स पर ग्रेप टोकन और कीवर्ड या अजगर में .contains और सी #

s=''' 
qwertyuiop 
asdfghjkl 

zxcvbnm 
token qwerty 

asdfghjklñ 
''' 

http://pythex.org/ तरह से ऊपर काम करता है निम्नलिखित 2 लाइनों

.... 
.... 
token qwerty