簡體   English   中英

python 中的正則表達式拆分字符串

[英]Regex in python splitting strings

我有一個這樣的字符串

SELECT [Orders$].[Category] AS [Category],&#13,&#10,  [Orders$].[City] AS [City],&#13,&#10,  [Orders$].[Country] AS [Country],&#13,&#10,  [Orders$].[Customer ID] AS [Customer ID],&#13,&#10,  [Orders$].[Customer Name] AS [Customer Name],&#13,&#10,  [Orders$].[Discount] AS [Discount],&#13,&#10,  [Orders$].[Profit] AS [Profit],&#13,&#10,  [Orders$].[Quantity] AS [Quantity],&#13,&#10,  [Orders$].[Region] AS [Region],&#13,&#10,  [Orders$].[State] AS [State],&#13,&#10,  [People$].[Person] AS [Person],&#13,&#10,  [People$].[Region] AS [Region (People)]&#13,&#10,FROM [Orders$]&#13,&#10,  INNER JOIN [People$] ON [Orders$].[Region] = [People$].[Region]

我只想動態獲取類別和城市,而不對單詞進行硬編碼。 我應該使用什么樣的模式? 這樣我會將這兩個值存儲在一個數組中,該數組在下游程序中循環。

我嘗試拆分文本

colName = re.split("\W+", result)

['SELECT',
 'Orders',
 'Category',
 'AS',
 'Category',
 '13',
 '10',
 'Orders',
 'City',
 'AS',
 'City',
 '13',
 '10',

它給了我整個字符串,現在不知道如何進行。 有人可以幫忙嗎??

謝謝

不要使用拆分,使用re.findall()

matches = re.findall(r'\bAS\s+\[(.+?)\]', yourString)

您想要的單詞在 match 中每個matches項的group(1)中。

不確定我是否正確理解了您的問題,看來您可以繼續:

>>> category = colName[2]
>>> city = colName[8]

您可以打印檢查:

>>> print(category, city)
Category City

暫無
暫無

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

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