Search and get a line in Python

前端 未结 4 1257
暖寄归人
暖寄归人 2021-02-05 03:26

Is there a way to search, from a string, a line containing another string and retrieve the entire line?

For example:

string = 
    qwertyuiop
    asdfghj         


        
相关标签:
4条回答
  • 2021-02-05 04:05

    you mentioned "entire line" , so i assumed mystring is the entire line.

    if "token" in mystring:
        print(mystring)
    

    however if you want to just get "token qwerty",

    >>> mystring="""
    ...     qwertyuiop
    ...     asdfghjkl
    ...
    ...     zxcvbnm
    ...     token qwerty
    ...
    ...     asdfghjklñ
    ... """
    >>> for item in mystring.split("\n"):
    ...  if "token" in item:
    ...     print (item.strip())
    ...
    token qwerty
    
    0 讨论(0)
  • 2021-02-05 04:17

    With regular expressions

    import re
    s="""
        qwertyuiop
        asdfghjkl
    
        zxcvbnm
        token qwerty
    
        asdfghjklñ
    """
    >>> items=re.findall("token.*$",s,re.MULTILINE)
    >>> for x in items:
    ...     print x
    ...
    token qwerty
    
    0 讨论(0)
  • 2021-02-05 04:20

    If you prefer a one-liner:

    matched_lines = [line for line in my_string.split('\n') if "substring" in line]
    
    0 讨论(0)
  • 2021-02-05 04:28
    items=re.findall("token.*$",s,re.MULTILINE)
    >>> for x in items:
    

    you can also get the line if there are other characters before token

    items=re.findall("^.*token.*$",s,re.MULTILINE)
    

    The above works like grep token on unix and keyword 'in' or .contains in python and C#

    s='''
    qwertyuiop
    asdfghjkl
    
    zxcvbnm
    token qwerty
    
    asdfghjklñ
    '''
    

    http://pythex.org/ matches the following 2 lines

    ....
    ....
    token qwerty
    
    0 讨论(0)
提交回复
热议问题