簡體   English   中英

AWS Lambda - re.sub in Python - 刪除行尾的括號

[英]AWS Lambda - re.sub in Python - remove Brackets at end of line

我需要將 Hive DDL 轉換為 Redshift DDL。 我在我的代碼中使用 re.sub 來執行轉換。 我無法在行尾替換“)”。

例如:-

"ci_stage" : "varchar(30))
"target_manager_id" : "bigint)

希望 output:-

"ci_stage" : "varchar(30)"
"target_manager_id" : "bigint"

我試過了:

modified_line113 = re.sub('[)]$','"', modified_line112)
modified_line113 = re.sub(r"\)$", '"', modified_line112)

他們不工作。 在行尾刪除字符“)”的最簡單方法是什么?

您的模式使用錨點來斷言字符串的結尾,因此您需要將多行標志re.M添加到re.sub以進行多次替換。

import re

modified_line112 = """"ci_stage" : "varchar(30))
"target_manager_id" : "bigint)"""

modified_line113 = re.sub(r"\)$", '"', modified_line112, 0, re.M)
print(modified_line113)

Output

"ci_stage" : "varchar(30)"
"target_manager_id" : "bigint"

暫無
暫無

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

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