[英]Using re.findall but without parenthesis in Python
我在 python x
中有一個變量,存儲以下值:
XYZ (APABC01)
ABC (ACACA18)
GHI (ABUAD21)
我只想要括號內的部分作為列表。 我使用了下面的正則表達式,我幾乎是正確的:
re.findall('\((.*?\))',x)
Output 是:
['APABC01)', 'ACACA18)', 'ABUAD21)']
我的問題是如何消除另一個括號。 我想要 output 這樣的:
['APABC01', 'ACACA18', 'ABUAD21']
這樣我就可以訪問列表中的元素以供進一步使用
您首先進行分組,因此它也在捕獲括號。 嘗試:
re.findall(r'\((.*?)\)', x)
首先,它轉義括號,然后捕獲中間的所有內容。
使用此正則表達式:
import re
x = '''XYZ (APABC01)
ABC (ACACA18)
GHI (ABUAD21)
'''
print(re.findall(r'[(](.*?)[)]', x))
# ['APABC01', 'ACACA18', 'ABUAD21']
[(]
:字符 class 僅包含(
- 左括號。您也可以使用\(
- 轉義左括號。
(.*?)
:任何字符重復 0 次或多次,非貪婪(最少出現次數)。 模式被re.findall
捕獲並作為列表返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.