【发布时间】:2020-09-28 17:57:19
【问题描述】:
我正在解析一些 SQL 语句,并找到了可能存在 SELECT 语句的地方:
SELECT [tblCustomer].[FirstName], [tblCustomer.LastName], [tblOrder].[Order_No]
如您所见,第二列的方括号内有一个.。这在 Access SQL 中是可以接受的,但在 SQL Server 中是不可接受的。我正在尝试构建一个正则表达式来识别方括号内何时有 . 并将其替换为 ].[
我尝试过:\[.+?\](?![\.]),它会在方括号内给我一个句点,但它在找到右括号时不会停止搜索。
我使用 ECMAScript 与 VBA 兼容,我不担心嵌套括号。
【问题讨论】:
-
你能不能把
].[换成.然后把.换成].[? -
replace(replace("SELECT [tblCustomer].[FirstName], [tblCustomer.LastName], [tblOrder].[Order_No]","].[","."),".","].[") -
@ScottCraner 我喜欢你的想法,但这也会找到合法的
.,并将它们替换为].['. Example:replace(replace("SELECT [tblCustomer].[FirstName], [tblCustomer.LastName], tblOrder.Order_No","].[","."),".","].[")` -
更正它假设所有人都是
[]。