[英]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.