【发布时间】:2026-01-05 16:40:01
【问题描述】:
源字符串:“LTRIM(RTRIM(AB.ITEM_ID)) AS ITEM_NUMBER,”
将 LTRIM RTRIM 转换为 TRIM 并删除多余的右括号。 我需要将其转换为“ TRIM(AB.ITEM_ID) AS ITEM_NUMBER,”
有许多 sql 文件,这些文件很长,需要作为平台迁移的一部分进行更正。 这个源字符串在每个 sql 中可能有很多地方。 我尝试做 line.replace('LTRIM(RTRIM', 'TRIM') 作品,但留下了额外的右括号。 我也希望一次性移除额外的支架 样本输入:
1.REPLACE(LTRIM(RTRIM(NVL(AB.ITEM_SHORT_DESC,AB.ITEM_DESC))),',','') AS SHORT_DESC
2.LTRIM(RTRIM(AB.ITEM_ID))** AS ITEM_NUMBER,**
请注意,输入是一个完整的字符串文件,可以多次出现,而不仅仅是一行,此 LTRIM(RTRIM 。当然必须使用一些正则表达式等。
我正在使用 python 3.8.2
【问题讨论】:
-
Python 在这种情况下没有 AS 运算符? AS 试图完成什么?
-
这是 VBA 代码吗?还是excel公式?
-
唯一的问题是你不知道正确的括号在哪里。
-
您必须使用新的
import regex模块才能使用递归来查找和识别右括号的位置。即使使用递归也只能让你做 outter LTRIM(RTRIM stuff 如果你想做内部的东西,你必须 re-run 上的正则表达式字符串,直到没有 LTRIM(RTRIM 剩下,如果你愿意使用它,我可以给你递归正则表达式。