此问题在此处已有答案:
How do i repeat regex(1个答案)
上个月关门了。
有一大块文本(PL/SQL DDL脚本)。
我需要使用Python re
库删除所有表名包含美元符号(“$”)的CREATE TABLE块。
PL/SQL脚本的格式相对较好。特别地,第一行将始终以CREATE TABLE
开始,并且还将包含表的名称(即,CREATE TABLE和表名之间没有换行符);整个CREATE TABLE ...
语句的结束圆括号将总是在单独的行上,并且它将总是该行中的唯一字符。
范例:
CREATE TABLE "SCH"."SOME$TABLE"
( "NAME" VARCHAR2(100 CHAR),
"DATA1" BLOB,
"TIMESTAMP1" DATE
)
字符串
我正在寻找一个与Python的re
库兼容的正则表达式,它将匹配上述5行。
我尝试了以下方法:
(?m)^CREATE TABLE.*\$.*[\s\S]^\)$
型
但它不匹配任何东西。
我做错了什么?
1条答案
按热度按时间mcdcgff01#
“……我做错了什么?“*
我相信您的错误是与
[\s\S]
字符组,因为它只匹配一个字符您可以附加一个
+?
量词,以匹配^\)$
。字符串