簡體   English   中英

在python中返回括號內的值

[英]Return the values inside parenthesis in python

我正在嘗試提取括號內以下行的值。

    line=(panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20))

預期的答案是:

    panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20)

但是使用以下

    pattern=re.compile(r'\((.*?)\)')
    match = re.search(pattern, line)

我只收到以下輸出。

    (panel, wxID_EXIT, wxT("Quit")

不幸的是,我對正則表達式的了解非常有限,有人可以幫助我獲得期望的答案。

那個.*? ,您關閉了正則表達式的貪婪方面。 只需刪除問號即可再次啟用它(這是默認設置):

pattern=re.compile(r'\((.*)\)')

全面測試:

import re
line='(panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20))'
pattern=re.compile(r'\((.*)\)')
match = re.search(pattern, line)
print(match.group(1)=='panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20)')

True

我認為您可以在這里避免使用RegEx:

text = '''line=(panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20))'''
parts = text.split("=")
result = parts[1][1:-1]

你可以做:

>>> line='(panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20))'
>>> re.search(r'^\s*\((.*)\)\s*$', line).group(1)
'panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20)'

或者,在直接的Python中,您可以執行以下操作:

>>> line.strip()[1:-1]
'panel, wxID_EXIT, wxT("Quit"),wxPoint(20, 20)'

首先使用.strip()空格,然后使用[1:-1]在字符串的兩側修剪一個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM