【发布时间】:2018-05-18 13:55:15
【问题描述】:
我正在尝试从字符串定义中获取所有检查约束,如下所示
CREATE TABLE products(
id INT PRIMARY KEY NOT NULL,
price REAL,
title TEXT,
CONSTRAINT price_check CHECK ( price > 0),
constraint title_check CHECK (length(title) > 5 AND (price <= 100.0))
);
使用以下正则表达式 /CONSTRAINT\s+(\w+)\s+CHECK\s+\((.+?)\)/i 但它不匹配第二个约束,只有 constraint title_check CHECK (length(title) 的一部分。
我应该如何更改我的正则表达式(如果可以的话)以使其正常工作?正则表达式的特定语言方言无关紧要。感谢您的帮助。
【问题讨论】:
-
您是否尝试过使用其中一种在线正则表达式工具?
-
删除使
+变得懒惰的?。 -
@SagarPandya:如果在 CHECK 括号内输入换行符,这将失败。如果你将表达式设为多行,那么正则表达式会吞食太多。
标签: javascript python ruby regex