簡體   English   中英

在 Python 中使用 re.findall 但沒有括號

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

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